原型
char *strtok(char *s, char *delim);
功能
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
说明
首次调用时,s指向要分解的字符串,之后再次调用要把s设成NULL。 strtok在s中查找包含在delim中的字符并用NULL('')来替换,直到找遍整个字符串。 char * p = strtok(s,";"); p = strtok(null,";"); 在调用的过程中,字串s被改变了,这点是要注意的。
返回值
从s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。 所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
#include <string.h>
#include <stdio.h>
int main(void)
{
char input[16] = "a,b,c,d";
char *p;
p = strtok(input, ",");
if (p) printf("%s\n", p);
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
p = strtok(NULL, ",");
if (p) printf("%s\n", p);
return 0;
}
输出:
pateo@pateo-B86N53X:~/work/study$
pateo@pateo-B86N53X:~/work/study$ gcc test.c -o test
pateo@pateo-B86N53X:~/work/study$ ./test
a
b
c
d
pateo@pateo-B86N53X:~/work/study$