函数定义
//extract tokens from strings
#include <string.h>
char *strtok(char *str, const char *delim);
char *strtok_r(char *str, const char *delim, char **saveptr);
使用strtok
解析提取字符串;
如aaa,bbb,ccc,ddd, delim=",", 一次分割出字符串"aaa", “bbb”, “ccc”, “ddd”,
使用的时候第一次提取需要指明str
字符串,后续对相同字符串的操作则必须指定为NULL
。
delim
是指定一系列字节表示的字符串,会匹配其中的所有字符集合中的字符。
每次调用strtok
返回一个指针直线一个null
结尾的字符串。不包含delim
中的字符。
下一次调用没有匹配的了就返回NULL
。
#include <stdio.h>
#include <string.h>
int main()
{
char str[]="aaa,bb,cc";
char *delim = ",";
char *tmp = strtok(str, delim);
while(tmp != NULL) {
printf("%s\n", tmp);
tmp = strtok(NULL, delim);
}
return 0;
}
strtok_r
是可重入的。**saveptr
是内部使用的。