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...