*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> strtok (3)              
Title
Content
Arch
Section
 

STRTOK(3)

Contents


NAME    [Toc]    [Back]

     strtok, strtok_r - string token operations

SYNOPSIS    [Toc]    [Back]

     #include <string.h>

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

     char *
     strtok_r(char *str, const char *sep, char **last);

DESCRIPTION    [Toc]    [Back]

     This interface is obsoleted by strsep(3).

     The strtok() function is used to isolate  sequential  tokens
in a null-terminated
  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_r() function is a version of strtok() that  takes
an explicit
     context argument and is reentrant.

     The  strtok()  and  strtok_r() functions return a pointer to
the beginning
     of each subsequent 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() and strtok_r() modify the string, str  should
not point to
     an area in the initialized data segment.

EXAMPLES    [Toc]    [Back]

     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];
           char *last;
           int i = 0;

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

           for ((p = strtok_r(s, " ", &last)); p;
               (p = strtok_r(NULL, " ", &last))) {
                   if (i < MAXTOKENS - 1)
                           tokens[i++] = p;
           }
           tokens[i] = NULL;

     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".

SEE ALSO    [Toc]    [Back]

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

STANDARDS    [Toc]    [Back]

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

BUGS    [Toc]    [Back]

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

OpenBSD     3.6                           June      29,      1991
[ Back ]
 Similar pages
Name OS Title
strsep Linux extract token from string
tokenadm OpenBSD SNK-004 token databases
x99token OpenBSD X9.9 software token calculator
pam_get_authtok FreeBSD retrieve authentication token
string IRIX string operations
string Linux string operations
tra Tru64 DETRA 4 Mb/s or 16 Mb/s Token Ring interface
openproj IRIX create/destroy a PROJ token
bstring NetBSD byte string operations
strncmp Tru64 Perform operations on string
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service