The
strsep ();
function locates, in the string referenced by
Fa *stringp ,
the first occurrence of any character in the string
Fa 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
Fa *stringp .
The original value of
Fa *stringp
is returned.
An
``empty''
field (i.e., a character in the string
Fa delim
occurs as the first character of
Fa *stringp )
can be detected by comparing the location referenced by the returned pointer
to
`\0'
If
Fa *stringp
is initially
NULL
strsep ();
returns
NULL
EXAMPLES
The following uses
strsep ();
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')
if (++ap >= &argv[10])
break;
The
strsep ();
function
is intended as a replacement for the
strtok ();
function.
While the
strtok ();
function should be preferred for portability reasons (it conforms to
St -isoC )
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 ();
function first appeared in
BSD 4.4