icon Top 9 categories map      RocketAware > man pages >


Tips: Browse or Search all pages for efficient awareness of more than 6000 of the most popular reusable and open source applications, functions, libraries, and FAQs.

The "RKT couplings" below include links to source code, updates, additional information, advice, FAQs, and overviews.


Search all pages


By activity
Professions, Sciences, Humanities, Business, ...

User Interface
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...

Text Strings
Conversions, tests, processing, manipulation,...

Integer, Floating point, Matrix, Statistics, Boolean, ...

Algorithms, Memory, Process control, Debugging, ...

Stored Data
Data storage, Integrity, Encryption, Compression, ...

Networks, protocols, Interprocess, Remote, Client Server, ...

Hard World
Timing, Calendar and Clock, Audio, Video, Printer, Controls...

File System
Management, Filtering, File & Directory access, Viewers, ...


RocketLink!--> Man page versions: OpenBSD FreeBSD RedHat Others

[ANSI C X3.159-1989]

STRTOK(3)                 OpenBSD Programmer's Manual                STRTOK(3)

     strtok - string token operations

     #include <string.h>

     char *
     strtok(char *str, const char *sep);

     This interface is obsoleted by strsep(3).

     The strtok() function is used to isolate sequential tokens in a null-ter-
     minated string, str. These tokens are separated in the string by at least
     one of the characters in sep. The first time that strtok() is called, str
     should be specified; subsequent calls, wishing to obtain further tokens
     from the same string, should pass a null pointer instead.  The separator
     string, sep, must be supplied each time, and may change between calls.

     The strtok() function returns a pointer to the beginning of each subse-
     quent token in the string, after replacing the separator character itself
     with an ASCII NUL character.  When no more tokens remain, a null pointer
     is returned.

     Since strtok() modifies the string, str should not point to an area in
     the initialized data segment.

     The following will construct an array of pointers to each individual word
     in the string s:

           #define MAXTOKENS       128

           char s[512], *p, *tokens[MAXTOKENS];
           int i = 0;

           snprintf(s, sizeof(s), "cat dog horse cow");

           for ((p = strtok(s, " ")); p; (p = strtok(NULL, " ")), i++) {
               if (i < MAXTOKENS - 1)
                   tokens[i] = p;
           tokens[i] = '\0';

     That is, tokens[0] will point to "cat", tokens[1] will point to "dog",
     tokens[2] will point to "horse", and tokens[3] will point to "cow".

     memchr(3),  strchr(3),  strcspn(3),  strpbrk(3),  strrchr(3),  strsep(3),
      strspn(3),  strstr(3)

     The strtok() function conforms to ANSI X3.159-1989 (``ANSI C'').

     There is no way to get tokens from multiple strings simultaneously.

     The System V strtok(), if handed a string containing only delimiter char-
     acters, will not alter the next starting point, so that a call to
     strtok() with a different (or empty) delimiter string may return a non-
     null value.  Since this implementation always alters the next starting
     point, such a sequence of calls would always return NULL.

OpenBSD 2.6                      June 29, 1991                               1

Source: OpenBSD 2.6 man pages. Copyright: Portions are copyrighted by BERKELEY
SOFTWARE DESIGN, INC., The Regents of the University of California, Massachusetts
Institute of Technology, Free Software Foundation, FreeBSD Inc., and others.

(Corrections, notes, and links courtesy of RocketAware.com)

[Detailed Topics]
FreeBSD Sources for strtok(3) functions
OpenBSD sources for strtok(3)

[Overview Topics]

Up to: NUL terminated String Comparison and Search - covers functions for comparing strings, finding characters within strings, et al.

RocketLink!--> Man page versions: OpenBSD FreeBSD RedHat Others

[ANSI C X3.159-1989]

Rapid-Links: Search | About | Comments | Submit Path: RocketAware > man pages > strtok.3/
RocketAware.com is a service of Mib Software
Copyright 1999, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments