29 lines
379 B
C
29 lines
379 B
C
#include <stdio.h>
|
|
|
|
char *strsep(char **stringp, const char *delim)
|
|
{
|
|
char *s, *tok;
|
|
const char *spanp;
|
|
int c, sc;
|
|
|
|
s = *stringp;
|
|
if (!s)
|
|
return NULL;
|
|
|
|
tok = s;
|
|
do {
|
|
c = *s++;
|
|
spanp = delim;
|
|
do {
|
|
sc = *spanp++;
|
|
if (sc == c) {
|
|
if (c == 0)
|
|
s = NULL;
|
|
else
|
|
s[-1] = 0;
|
|
*stringp = s;
|
|
return tok;
|
|
}
|
|
} while (sc != 0);
|
|
} while (1);
|
|
}
|