C/C++中的Split函數

strtok()用來將字符串分割成一個個片段。參數str指向欲分割的字符串,參數delimiters則爲分割字符串,當strtok()在參數str的字符串中發現到參數delimiters的分割字符時則會將該字符改爲'\0'字符。在第一次調用時,strtok()必需給予參數str字符串,往後的調用則將參數str設置成NULL。

C/C++中的Split函數是strtok()其函數原型如下: 
char * strtok (char * str, const char * delimiters); 

函數說明 
strtok()用來將字符串分割成一個個片段。參數str指向欲分割的字符串,參數delimiters則爲分割字符串,當strtok()在參數str的字符串中發現到參數delimiters的分割字符時則會將該字符改爲'\0'字符。在第一次調用時,strtok()必需給予參數str字符串,往後的調用則將參數str設置成NULL。每次調用成功則返回下一個分割後的字符串指針。 

返回值 
返回下一個分割後的字符串指針,如果已無從分割則返回NULL。 


示例-1 
/* strtok example */ 
#include <stdio.h> 
#include <string.h> 

int main () 

char str[] ="a,b,c,d*e"; 
const char * split = ","; 
char * p; 
p = strtok (str,split); 
while(p!=NULL) { 
printf ("%s\n",p); 
p = strtok(NULL,split); 


getchar(); 
return 0; 


本例中,實現對字符串'a,b,c,d*e"用逗號(,)來作界定符對字符串進行分割。 
輸出結果將如下所示: 



d*e 

因爲delimiters支持多個分割符, 我們將本示例中的語句行 
const char * split = ","; 
改成 const char * split = ",*"; //用逗號(,)和星號(*)對字符串進行分割 

這樣輸出結果將如下所示: 




e
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章