#include "stdio.h" char* strtok(char *s,char *delim) { static char *last = s;//保存剩余字符串 char *start=NULL;//每次返回字符串的起始地址 char *str=NULL; if (last==NULL) { return NULL; } if (s==NULL) start = last; else start = s;//字符串不为空的时候 str = start; char *cp; while(*str) { cp = delim; while(*cp) { if(*str==*cp) { *str = '/0'; last = str+1; return start; } cp++; } str++; } if (*str=='/0') { last = NULL; return start; } return NULL; } void main() { char str[]={"test:is:a,string:toking"}; char *str1 =strtok(str,":,"); int x=1; printf("%d:%s/n",x,str1); while(1) { str1 = strtok(NULL,":,"); if(str1==NULL) { printf("完成/n"); break; } x++; printf("%d:%s/n",x,str1); } }