本程序使用strtok()函数实现对字符串的分割。过程中使用循环检测是否停止分割,直至分割结束。
对 strtok(s,ct)进行一系列调用,可以把字符串s分成许多记号,这些记号以ct中字符为分界符。第一次调用时,s为非空。它搜索s,找到不包含ct中字符的第一个记号,将s中的下一个字符替换为'\0’,并返回指向记号的指针。随后,每次调用 strtok函数时(由s的值是否为NULL指示),均返回下一个不包含ct中字符的记号。当s中没有这样的记号时,返回NULL。每次调用时字符串ct可以不同。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char s[] = "ab-cd : ef;gh :i-jkl;mnop;qrs-tu: vwx-y;z";
char *delim = "-: "; //分割符号三个
char *p;
printf("分割出来的字符串序列有:\n");
printf("%s ", strtok(s, delim)); //输出分割的字符串
while((p = strtok(NULL, delim)))
printf("%s ", p);
printf("\n");
system("pause");
return 0;
}