INFO: strtok(): C Function -- Documentation SupplementLast reviewed: September 2, 1997Article ID: Q51327 |
MS-DOS:5.1,6.0,6.00a,6.00ax,7.0; OS/2:5.1,6.0,6.00a; WINDOWS:1.0,1.5;
WINDOWS NT:1.0,2.0,4.0,5.0
The information in this article applies to:
SUMMARYIn Microsoft C, the strtok() function takes two strings as arguments. The first is a series of zero or more tokens separated by delimiters defined by the second string. The first call to strtok() returns a pointer to the first token in the first argument. To get the next token in the original string, a call to strtok() must be made with NULL as the first argument, which tells strtok() to search for the next token in the previous token string. Keep the following information in mind when using strtok():
MORE INFORMATIONOn the first call to strtok(), the function searches the string argument given as the first parameter for any token delimiter defined in the second string argument. Any further call to strtok() with NULL as the first argument will return a pointer to the next token in the original string. The following sample program from page 603 of the "Microsoft C Optimizing Compiler: Run-Time Library Reference" manual for version 5.1 shows how strtok() searches a token string:
Sample Code
/* Compile options needed: none */ #include <string.h> #include <stdio.h> char *string = "a string,of ,,tokens"; char *token; void main(void) { token = strtok(string," ,"); /*There are two delimiters here*/ while (token != NULL){ printf("The token is: %s\n", token); token = strtok(NULL," ,"); } }The output of this program is as follows:
------------------------------------------------------------- |a | |s |t |r |i |n |g |, |o |f | |, |, |t |o |k |e |n |s | ------------------------------------------------------------- This is the original string before the first call to strtok(). ------------------------------------------------------------- |a |\0|s |t |r |i |n |g |, |o |f | |, |, |t |o |k |e |n |s | ------------------------------------------------------------- ^----- Token will point here on the first call. ------------------------------------------------------------- |a |\0|s |t |r |i |n |g |\0|o |f | |, |, |t |o |k |e |n |s | ------------------------------------------------------------- ^------ Token will point here on the second call. ------------------------------------------------------------- |a |\0|s |t |r |i |n |g |\0|o |f |\0|, |, |t |o |k |e |n |s | ------------------------------------------------------------- ^----- Token will point here on the third call. (and so on) Keywords : CRTIss kbcode kbfasttip Platform : MS-DOS NT OS/2 WINDOWS |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |