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; }
原文:https://www.cnblogs.com/wkfvawl/p/9042695.html