NAME
strsep —
separate strings
SYNOPSIS
#include
<string.h>
char *
strsep(char
**stringp, char
*delim);
DESCRIPTION
Thestrsep()
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()
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') ++ap;
HISTORY
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 ANSI X3.159-1989
(“ANSI C89”)) 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 4.4BSD.