原型: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。如例
- #include <stdio.h>
- #include <string.h>
- #include <windows.h>
- int main(void)
- {
- char buf[80]; //局部變量默認沒有初始化
- char *p;
- strncpy(buf,"helloworld",strlen("helloworld"));
- //printf("%s\n",buf); //沒有拷貝'\0',所以helloworld後有亂碼。
- p=strtok(buf,"[]");
- printf("**%s**\n",p);
- p=strtok(NULL,"[]");
- printf("**%s**\n",p);
- return 0;
- }
結果爲: