The strsep function locates, in the string referenced by *stringp, the first occurrence of any character in the string delim (or the terminating \0 character) and replaces it with a \0. The location of the next character after the delimiter character (or NULL, if the end of the string was reached) is stored in *stringp. The original value of *stringp is returned.
An "empty" field (i.e., a character in the string delim occurs as the first character of *stringp) can be detected by comparing the location referenced by the returned pointer to \0.
If *stringp is initially NULL, strsep returns NULL.
The following uses strsep to parse a string, containing tokens delimited by white space, into an argument vector:
char **ap, *argv, *inputstring;
for (ap = argv; (*ap = strsep(&inputstring, " \t")) != NULL;)
if (**ap != \0)
if (++ap >= &argv)
memchr(3), strchr(3), strcspn(3), strpbrk(3), strrchr(3), strspn(3), strstr(3), strtok(3)