#include <stdio.h>
#include <assert.h>
#include <string.h>
char *Mystrtok(char *str, const char *del)
{
// str 可以为NULL
assert(del != NULL);
static char *last ;
if(str == NULL)
str = last;
str += strspn(str, del);
if(*str == '\0')
return NULL;
char *s = str;
str = strpbrk(s, del);
if(str == NULL)
last = strchr(s, '\0');
else
{
*str = '\0';
last = str+1;
}
return s;
}
int main()
{
char a[] = "abc ab ad ac";
const char *b = "b ";
char *p = Mystrtok(a, b);
printf("%s\n", p);
while((p = Mystrtok(NULL, b)))
printf("%s\n", p);
return 0;
}
strtok 源码实现
最新推荐文章于 2024-10-09 16:37:43 发布