搜尋字串函式 strstr原型: extern char *strstr (char *__haystack, const char *__needle)
所在標頭檔案:#include
功能:從字串haystack中尋找needle第一次出現的位置(不比較結束符null)。
說明:返回指向第一次出現needle位置的指標,如果沒找到則返回null。
#include #include int main(void)
執行結果: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 #include int main(void)
return 0;
}
執行結果:1@2@3@4@5@6@
切割字串函式 strsep
原型:extern char *strsep (char **__restrict __stringp, const char *__restrict __delim)
功能:分解字串為一組字串。從stringp指向的位置起向後掃瞄,遇到delim指向的字串中的字元後,將此字元替換為null,返回stringp指向的位址。它適用於分割「關鍵字」在兩個字串之間只「嚴格出現一次」的情況說明:和strsok不同的是,直接看結果
#include #include int main(void)
return 0;
}
執行結果:1@@2@@@@3@4@@@5@6@
總結:
strstr用於判斷字串str2是否是str1的子串。如果是,則該函式返回str2在str1中首次出現的位址;否則,返回null
strtok內部記錄上次呼叫字串的位置,所以不支援多執行緒,可重入版本為strtok_r,有興趣的可以研究一下。它適用於分割關鍵字在字串之間是「單獨」或是 「連續「在一起的情況。
strsep返回值為分割後的開始字串,並將函式的第乙個引數指標指向分割後的剩餘字串。它適用於分割關鍵字在兩個字串之間只嚴格出現一次的情況。 不過據說linux核心裡面已經放棄了strtok而用的是strsep,等以後有需要了再研究
C 中字串分割的常用函式
經常碰到字串分割的問題,這裡總結下,也方便我以後使用。一 用strtok 函式進行字串分割 原型 char strtok char str,const char delim 功能 分解字串為一組字串。引數說明 str 為要分解的字串,delim 為分隔符字串。返回值 從s tr開頭開始的乙個個被分割...
c 字串分割函式
使用strtok函式分割。原型 char strtok char s,char delim strtok在s中查詢包含在delim中的字元並用null 0 來替換,直到找遍整個字串。功能 分解字串為一組字串。s為要分解的字串,delim為分隔符字串。說明 首次呼叫時,s指向要分解的字串,之後再次呼叫...
C 字串分割函式
平時刷 leetcode 劍指 offer 等可能不會用到,但在找工作做筆試題的過程中還是會經常用到的,c 標準庫裡面沒有字元分割函式split,這裡做個總結。方法1 利用 stl 實現 include include include using namespace std vector split...