思路:每次在原来字符串中查找分隔字符串,将分隔字符串中所有字符设为' ',然后输出分隔串前的子串,同时更新原串的起始位置。
PS:有不少博客作者自己实现的方法中往往只将分隔串当做一个字符,实际上可以是一个字符串,这点需要注意
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 char* my_strtok(char* str, const char *delimit) 6 { 7 static char* tmp = NULL; 8 char *ret = NULL; 9 if(delimit == NULL) return str; 10 if(str != NULL) 11 tmp = str; 12 if(tmp == NULL) return NULL; 13 ret = tmp; 14 char *p = strstr(tmp, delimit); 15 if(p != NULL) 16 { 17 tmp = p + strlen(delimit);//tmp要更新为下次的起始点 18 int i; 19 for(i = 0; i < strlen(delimit);i++)//将原串中的分隔符字符串都设置为' ',保证输出ret时,只输出第一段,达到分割的效果 20 { 21 *(p + i) = '