Index of Section 3 Manual Pages
| Interix / SUA | strsep.3 | Interix / SUA |
strsep(3) strsep(3)
strsep()
NAME
strsep() - separate strings
SYNOPSIS
#include
char * strsep (char **stringp, char *delim)
DESCRIPTION
The strsep(3) 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. one caused by two adjacent delimiter characters,
can be detected by comparing the location referenced by the pointer
returned in *stringp to \0.
If *stringp is initially NULL, strsep(3) returns NULL.
EXAMPLES
The following uses strsep(3) to parse a string, containing tokens
delimited by white space, into an argument vector:
char **ap, *argv[10], *inputstring;
for (ap = argv; (*ap = strsep(&inputstring, " \t")) != NULL;)
if (**ap != '\0')
++ap;
NOTES
The strsep(3) function is intended as a replacement for the strtok(3)
function. While the strtok(3) function should be preferred for portability
reasons (it conforms to ISO> C) it is unable to handle empty fields, i.e.
detect fields delimited by two adjacent delimiter characters, or to be
used for more than a single string at a time. The strsep(3) function first
appeared in 4.4BSD.
SEE ALSO
strtok(3)
USAGE NOTES
The strsep function is thread safe.
The strsep function is not async-signal safe.