char *strtok(char *s, const char *delim);
分解字符串為一組字符串。s為要分解的字符串,delim為分隔符字符串。
從s開頭開始的一個個被分割的串。當沒有被分割的串時則返回NULL。
注:第一次調用strtok函數時,這個函數將忽略間距分隔符並返回指向在strToken字符串找到的第一個符
號的指針,該符號后以NULL字符結尾.通過調用一系列的strtok函數,更多的符號將從strToken字符串中分
離出來.每次調用strtok函數時,都將通過在找到的符號后插入一個NULL字符來修改strToken字符串.為了
讀取strToken中的下一個符號,調用strtok函數時strToken參數為NULL,這會引發strtok函數在已修改過
的strToken字符串查找下一個符號.
#include <stdio.h> #include<string.h> int main() { char str[] = "mv a.c b.c"; char *p; p = strtok(str, " "); while(p) { printf("%s\n", p); p = strtok(NULL, " "); } return 0; }
在linux2.6.29以后的版本中,strtok被strsep代替了。
具體示例如下:
#include <stdio.h> #include<string.h> int main() { char str[] = "mv a.c b.c"; char *p; char *buff; buff=str; p = strsep(&buff, " "); while(p!=NULL) { printf("%s\n", p); p = strsep(&buff, " "); } return 0; }
