char *strtok(char s[], const char *delim);
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
例如:strtok("abc,def,ghi",","),最后可以分割成为abc def ghi
p=strtok(input,","); 第一次分割的结果,返回串中第一个 ',' 之前的字符串,也就是上面的程序第一次输出abc。
第二次调用该函数strtok(NULL,","),第一个参数设置为NULL。结果返回分割依据后面的字串,即第二次输出d。
#include<string.h>
#include<stdio.h>
int main(void)
{
char input[16]="abc,d,ef";
char*p;
/*strtok places a NULL terminator
infront of the token,if found*/
p=strtok(input,",");
if(p)
printf("%s\n",p);
/*Asecond call to strtok using a NULL
as the first parameter returns a pointer
to the character following the token*/
p=strtok(NULL,",");
if(p)
printf("%s\n",p);
return 0;
}
可以用while循环修改,循环查找字符。如下:
#include<string.h>
#include<stdio.h>
int main(void)
{
char input[16]="abc,d,ef";
char*p;
/*strtok places a NULL terminator
infront of the token,if found*/
p=strtok(input,",");
while(p){
printf("%s\n",p);
p=strtok(NULL,",");
}
return 0;
}