幾個常用的C查詢分割字串函式
搜尋字串函式 strstr原型: extern char *strstr (char *__haystack, const char *__needle)
所在標頭檔案:#include <string.h>
功能:從字串haystack中尋找needle第一次出現的位置(不比較結束符NULL)。
說明:返回指向第一次出現needle位置的指標,如果沒找到則返回NULL。
#include <stdio.h> #include <string.h> int main(void) { char haystack[] = "xiaojunyu"; char needle[] = "jun"; char *buf=strstr(haystack,needle); buf = strstr(haystack, needle); printf("%s",buf); return 0; }
執行結果:junyu
切割字串函式 strtok
原型:extern char *strtok (char *__restrict __s, const char *__restrict __delim)
功能:分解字串為一組字串。s為要分解的字串,delim為分隔符字串。實質上的處理是,strtok在s中查詢包含在delim中的字元並用NULL(’/0′)來替換,直到找遍整個字串。 說明:首次呼叫時,s指向要分解的字串,之後再次呼叫要把s設成NULL。strtok在s中查詢包含在delim中的字元並用NULL(’/0′)來替換,直到找遍整個字串。
返回值:從s開頭開始的一個個被分割的串。當沒有被分割的串時則返回NULL。所有delim中包含的字元都會被濾掉,並將被濾掉的地方設為一處分割的節點。
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[] = "1,,2,,|,3-4,,,5|6";
char *token;
for (token = strtok(buf, ",-|"); token != NULL; token = strtok(NULL, ",-|")) {
printf("%[email protected]", token);
}
return 0;
}
執行結果:[email protected]
切割字串函式 strsep
原型:extern char *strsep (char **__restrict __stringp, const char *__restrict __delim)
功能:分解字串為一組字串。從stringp指向的位置起向後掃描,遇到delim指向的字串中的字元後,將此字元替換為NULL,返回stringp指向的地址。它適用於分割“關鍵字”在兩個字串之間只“嚴格出現一次”的情況 說明:和strsok不同的是,直接看結果
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[] = "1,,2,,|,3-4,,,5|6";
char *buff = buf;
char *token;
for (token = strsep(&buff, ",-|"); token != NULL; token = strsep(&buff, ",-|")) {
printf("%[email protected]", token);
}
return 0;
}
執行結果:[email protected]@[email protected]@@@[email protected]@@@[email protected]@
總結:
strstr用於判斷字串str2是否是str1的子串。如果是,則該函式返回str2在str1中首次出現的地址;否則,返回NULL
strtok內部記錄上次呼叫字串的位置,所以不支援多執行緒,可重入版本為strtok_r,有興趣的可以研究一下。它適用於分割關鍵字在字串之間是“單獨”或是 “連續“在一起的情況。
strsep返回值為分割後的開始字串,並將函式的第一個引數指標指向分割後的剩餘字串。它適用於分割關鍵字在兩個字串之間只嚴格出現一次的情況。 不過據說linux核心裡面已經放棄了strtok而用的是strsep,等以後有需要了再研究
相關推薦
幾個常用的C查詢分割字串函式
搜尋字串函式 strstr原型: extern char *strstr (char *__haystack, const char *__needle) 所在標頭檔案:#include <s
(轉載)C語言中常用的幾個標頭檔案及庫函式 (stdio.h ,string.h ,math.h ,stdlib.h)
不完全統計,C語言標準庫中的標頭檔案有15個之多,所以我主要介紹常用的這四個標頭檔案stdio.h ,string.h ,math.h ,stdlib.h ,以後用到其他的再做補充。下面上乾貨: 1.<stdio.h>:定義了輸入輸出函式、型別以及巨集,函式
【C語言】字串函式strtok 按照指定字串分割
C語言字串函式 strtok() 函式原型 char *strtok(char *str,const char *delimiters); 引數 str,待分割的字串 delimiters,分隔符字串 該函式用來將字串str分割成一個個片段。 引數str指
sql幾個常用函式
Oracle:(百度百科查詢整理) 1,ROUND()函式為四捨五入函式 Round(number,[decimals] number 待做四捨五入處理的數值 decimals 指明需保留小數點後面的位數
C中的幾個常用演算法
/*一般查詢法*/{ int i; if( size <= 0 ) return -1; for( i = 0; i < size; ++i ) if( date == array[i] ) return i; return -1;} void s
C#幾個經常用到的字串的擷取、替換
C#幾個經常用到的字串的擷取 如將2013-08-08 替換成 20130808,程式碼寫法 string str = "2013-08-08",str = str.replace("-",""); string str="123abc456"; int i=3; 1
SQL Server 幾個常用函式的使用
這幾個函式其實網上資料很多,但是為了方便自己的記憶,我還是決定還是寫一下,都說好記性不如爛筆頭,所以還是多寫一下。cast()函式作用主要是:把一種型別轉化成另外一種型別如把字串型別轉換成時間型別:SELECT CAST( '2011-10-2' AS datetime),再或者把數值型轉換成字串型別:SEL
c語言 記憶體查詢提取字串函式
查詢標頭 標尾 提取其中的資料。int GetidNumber(char * src, int src_size, char *dst){char flag1[10] = { 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x3a,0x
sql語句的幾個常用函式總結
結構化查詢語言(Structured Query Language,簡稱SQL語句)從單個函式的使用上來看,較為簡單,但是當表與表巢狀、幾個函式組合使用,即可實現強大的資料查詢功能,能從資料庫中快速便捷地獲取需要的資訊。 本文總結了sql語句中常用的5個函式,
查詢域控的幾個常用方法
1.net viewnet view /domain2.set logset log3.通過srv記錄nslookup -type=SRV _ldap._tcp.corp4.使用nltestnltest /dclist:corp5.使用dsqueryDsQuery Serv
c++ vector的幾個常用方法
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">vector是一個類似陣列的容器,但可以刪減後自動改變長度。</s
XPATH的幾個常用函式
1.contains (): //div[contains(@id,'in')] ,表示選擇id中包含有’in’的div節點 2.text():由於一個節點的文字值不屬於屬性,比如“<a clas
TensorFlow中用於評估模型在訓練集和測試集上的準確度的幾個常用函式說明
1. tf.argmax() | tf.argmin() tf.argmax(input=tensor,dimention=axis) 找到給定的張量tensor中在指定軸axis上的最大值/最小值的位置。 a=tf.get_variable(nam
介紹幾個程式中關於"路徑字串"的函式
程式中經常用到獲取路徑。 之前的部落格也講到過關於獲取路徑的一些操作。 獲取系統特殊目錄 比如使用SHGetFolderPath函式獲取windows系統的一些目錄: HRESULT SHGetFolderPath( HWND hwndOwner,
幾個常用的c++設計巨集定義
//singleton模板實現 template <typename T> struct Singleton { static T& getInstance() { static T inst; retur
PHP執行系統命令的有幾個常用的函數
exe 自動 文件操作 nal 外部命令 中間 ring 打開 lcm PHP執行系統命令的有幾個常用的函數,如有:system函數、exec函數、popen函數,passthru,shell_exec函數他們都可以執行系統命令,不過前提時必須系統給了權限了哦。 syste
miniui幾個常用知識點匯總
簡單 去除 spa 自帶 超過 表格 繪制 val wro 1.在表格中去除系統自帶的序列號,請看代碼: function allAndBrief(id) { if(id==1){ grid.set({
hadoop的幾個常用命令
hadoop官方文檔:http://hadoop.apache.org/docs/r1.2.1/file_system_shell.html1、登錄主節點,切換到hdfs用戶[[email protected]/* */~]#su - hdfs2、列出當前目錄有哪些子目錄,有哪些文件[[email
封裝對象,包含幾個常用方法
nts opp 操作 阻止事件冒泡 3.1 坐標 stop pre 處理 這兩天復習了DOM事件綁定,記錄一下,便於復習學習。 1 事件處理程序 1.1 HTML事件處理程序:直接寫在html中,和html不解耦,修改麻煩 1.2 DOM0級事件處理程序:不寫在html
Python:print()函數的幾個常用參數
com file open 默認 strong 其他 end 空格 文件的 1.參數sep:設置輸出字符產之間的字符串。默認是空格 1 name=‘Tomwenxing‘ 2 age=‘23‘ 3 job=‘student‘ 4 print(name,age,job) 5