转自:https://blog.csdn.net/hgj125073/article/details/8447605
【FROM MSDN && 百科】
原型: char *strtok(char *s, const char *delim);
#include<string.h>
分解字符串为一组字符串。s为要分解的字符串,delim为分隔符字符串。
strtok()用来将字符串分割成一个个片段。参数s指向欲分割的字符串,参数delim则为分割字符串中包含的所有字符。当strtok()在参数s的字符串中发现参数delim中包涵的分割字符时,则会将该字符改为\0 字符。在第一次调用时,strtok()必需给予参数s字符串,往后的调用则将参数s设置成NULL。每次调用成功则返回指向被分割出片段的指针。
s开头开始的一个个被分割的串。当没有被分割的串时则返回NULL。所有delim中包含的字符都会被滤掉,并将被滤掉的地方设为一处分割的节点。
DEMO:MSDN上的
#include <stdio.h>
#include <string.h>
#include <conio.h>
char string[] = "A string\tof ,,tokens\nand some more tokens";
char seps[] = " ,\t\n";
char *token;
int main(void)
{
printf( "Tokens:\n" );
token = strtok( string, seps );
while(token !=NULL)
{
printf("%s\n",token);
token=strtok(NULL,seps);
}
getch();
return 0;
}
DEMO:
#include <stdio.h>
#include <conio.h>
int main(void)
{
char input[16]="abc,d,yuwen";
char *p;
p=strtok(input,",");
if (p)
{
printf("%s\n",p);
}
p=strtok(NULL,",");
if (p)
{
printf("%s\n",p);
}
getch();
return 0;
}