庫函數實現之字符串切割strtok

    原型:char *strtok(char *s, char *delim);

    功能:分解字符串爲一組字符串。s爲要分解的字符串,delim爲分隔符字符串。實質上的處理是,strtok在s中查找包含在字符串delim中的字符並用NULL(’\0′)來替換,直到找遍整個字符串。

    說明:首次調用時,s指向要分解的字符串,之後再次調用要把s設成NULL。strtok在s中查找包含在delim中的字符並用NULL(’\0′)來替換,直到找遍整個字符串。

    返回值:從s開頭開始的一個個被分割的串。當沒有被分割的串時則返回NULL(這句話說的不具體,看“注意”)。所有delim中包含的字符都會被濾掉,並將被濾掉的地方設爲一處分割的節點。  

    注意:庫函數strtok,當在字符串s中找不到要切割的字符串delim時,則會返回字符串s的首地址,再次在s中尋找delim時,則會返回NULL。如例

  1. #include <stdio.h> 
  2. #include <string.h> 
  3. #include <windows.h> 
  4.  
  5. int main(void
  6.     char buf[80];  //局部變量默認沒有初始化 
  7.     char *p; 
  8.     strncpy(buf,"helloworld",strlen("helloworld"));    
  9.     //printf("%s\n",buf);       //沒有拷貝'\0',所以helloworld後有亂碼。 
  10.     p=strtok(buf,"[]");  
  11.         printf("**%s**\n",p); 
  12.     p=strtok(NULL,"[]"); 
  13.         printf("**%s**\n",p);    
  14.     return 0; 

    結果爲:

 

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