bob tong 字串函式之Strtok 函式

2021-08-13 22:34:15 字數 1770 閱讀 8631

strtok()函式詳解:

該函式包含在"string.h"標頭檔案中 

函式原型:

char* strtok (char* str,constchar* delimiters );
函式功能:

切割字串,將str切分成乙個個子串 

函式引數:

str:在第一次被呼叫的時間str是傳入需要被切割字串的首位址;在後面呼叫的時間傳入null。 

delimiters:表示切割字串(字串中每個字元都會 當作分割符)。 

函式返回值:

當s中的字元查詢到末尾時,返回null; 

如果查不到delimiter所標示的字元,則返回當前strtok的字串的指標。

使用strtok()函式:

#include#include

int main(void

) return0;

}

預計輸出結果:

"hello boy this is heima "

實際執行結果:

得到的結論:

strtok在切割字串的時間,實際上就是將分割符的字元delimiter替換為'\0'並且返回首位址。

函式**:

#include#include

//根據函式原型實現strtok()函式

char* mystrtok_origin(char* str_arr,constchar* delimiters,char**temp_str)

//2、跳過待分解字串

//掃瞄delimiters字元開始的所有分解符

str_arr +=strspn(str_arr, delimiters);

//3、判斷當前待分解的位置是否為'\0',若是則返回null,否則繼續

if(*str_arr =='\0'

)

/** 4、儲存當前的待分解串的指標b_temp,呼叫strpbrk()在b_temp中找分解符,

* 如果找不到,則將temp_str賦值為待分解字串末尾部'\0'的位置,

* b_temp沒有發生變化;若找到則將分解符所在位置賦值為'\0',

* b_temp相當於被截斷了,temp_str指向分解符的下一位置。

*/b_temp =str_arr;

str_arr =strpbrk(str_arr, delimiters);

if(str_arr ==null)

else

//5、函式最後部分無論找沒找到分解符,都將b_temp返回。

return

b_temp;}//

使用mystrtok來簡化mystrtok_origin函式

char* mystrtok(char* str_arr,constchar*delimiters)

int main(void

)

//2、使用mystrtok()函式

char*str1 = mystrtok(buf,"@"

);

while

(str1)

return0;

}

字串函式之Strtok 函式

該函式包含在 string.h 標頭檔案中 char strtok char str,constchar delimiters 切割字串,將str切分成乙個個子串 當s中的字元查詢到末尾時,返回null 如果查不到delimiter所標示的字元,則返回當前strtok的字串的指標。include i...

MySQL之字串函式

字串是由零個或多個字元組成的有限序列。一般記為 s a1a2 an n 0 通常以串的整體作為操作物件,如 在串中查詢某個子串 求取乙個子串 在串的某個位置上插入乙個子串以及刪除乙個子串等。假如結果的長度大於 max allowed packet 系統變數的最大值時,字串值函式的返回值為null。1...

PHP之字串函式

一 字串長度函式1.int strlen str 計算字元長度 2.mb strlen string str string encoding 二 查詢字串位置函式1.strpos str,search int 查詢search在 str中的第一次位置從int開始。2.stripos str,sear...