[root@wknode C]# more 008-mystrtok.c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
static char *mystrtok(char **ptr, const char *sep)
{
char *res;
if (**ptr == 0)
return NULL;
while (**ptr && strchr(sep, **ptr))
(*ptr)++;
if (**ptr == 0)
return NULL;
res = *ptr;
while (**ptr && strchr(sep, **ptr) == NULL)
(*ptr)++;
if (**ptr != 0)
*(*ptr)++ = 0;
return res;
}
int main()
{
char arrayWithSeparator[64]="1111|2222|3333|4444";
char *array = arrayWithSeparator;
char *f[4];
f[0] = mystrtok(&array, " |");
f[1] = mystrtok(&array, " |");
f[2] = mystrtok(&array, " |");
f[3] = mystrtok(&array, " |");
printf("f[0] = %s\n", f[0]);
printf("f[1] = %s\n", f[1]);
printf("f[2] = %s\n", f[2]);
printf("f[3] = %s\n", f[3]);
}
