Separate a string into pieces marked by given delimiters
#include <string.h> char *strsep( char **stringp, char *delim );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The strsep() function looks in the null-terminated string pointed to by stringp for the first occurrence of any character in delim and replaces this with a \0, records the location of the next character in *stringp, then returns the original value of *stringp. If no delimiter characters are found, strsep() sets *stringp to NULL; if *stringp is initially NULL, strsep() returns NULL.
A pointer to the original value of *stringp.
Parse strings containing runs of whitespace, making up an argument vector:
char inputstring[100]; char **argv[51], **ap = argv, *p, *val; /* set up inputstring */ for (p = inputstring; p != NULL; ) { while ((val = strsep(&p, " \t")) != NULL && *val == '\0'); *ap++ = val; } *ap = 0;
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | Yes |
Signal handler | Yes |
Thread | Yes |
strtok(), strtok_r(), wcstok()