函数原型:char *strtok(char *str, const char *delim);
str是要分割的字符串,strtok()在字符串中发现分割符delim后,会将字符改为'\0'(即空字符)。在第一次调用时,strtok()必需给予str一个字符串,往后的调用则将str设置成NULL。每次调用成功则返回指向被分割出片段的指针。
注:字符串不能是常量哦!(常量不可变,而strtok()会改变字符串,即原字符串会变为第一次分割出的内容!)
例:分割ip地址“192.168.0.1”
#include <string.h>
#include <stdio.h>
void main()
{
char s[] = "192.168.0.1";
char *delim = ".";
char *p1,*p2,*p3,*p4;
p1=strtok(s,delim);
p2=strtok(NULL,delim);
p3=strtok(NULL,delim);
p4=strtok(NULL,delim);
printf("p1=%s ",p1);
printf("p2=%s ",p2);
printf("p3=%s ",p3);
printf("p4=%s\n",p4);
printf("s=%s\n",s);
}
显然,原字符串s[]=“192.168.0.1”变为了p1,即192。