MirBSD manpage: strsep(3)

STRSEP(3)                  BSD Programmer's Manual                   STRSEP(3)


     strsep - separate strings


     #include <string.h>

     char *
     strsep(char **stringp, const char *delim);


     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., one caused by two adjacent delimiter characters,
     can be detected by comparing the location referenced by the pointer re-
     turned by strsep() to '\0'.

     If *stringp is initially NULL, strsep() returns NULL.


     The following uses strsep() to parse a string, containing tokens delimit-
     ed by whitespace, into an argument vector:

           char **ap, *argv[10], *inputstring;

           for (ap = argv; ap < &argv[9] &&
               (*ap = strsep(&inputstring, " \t")) != NULL;) {
                   if (**ap != '\0')
           *ap = NULL;


     The strsep() function is intended as a replacement for the strtok() func-
     tion. 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 delim-
     iter characters, or to be used for more than a single string at a time.
     The strsep() function first appeared in 4.4BSD.

MirBSD #10-current               June 9, 1993                                1

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung