strtok


strtok

Divides a string into tokens

 #include <string.h> char *strtok ( char * restrict s1 , const char * restrict s2  ); 

The strtok( ) function isolates tokens in the string addressed by s1 that are delimited by any of the characters contained in the string addressed by s2. The tokens are identified one at a time by successive calls to strtok( ). On calls after the first, the s1 argument is a null pointer.

On the first call, strtok( ) searches in s1 for the first character that does not match any character in s2, behavior that is similar to the strspn( ) function. The first such character found is considered to be the beginning of a token. Then strtok( ) searches further for the first character that does match any of the characters in s2or the null character that terminates the string, whichever comes firstsimilarly to the strcspn( ) function. This is considered to be the delimiter that ends the token. strtok( ) then replaces this ending delimiter with '\0', and returns a pointer to the beginning of the token (or a null pointer if no token was found), while saving an internal, static pointer to the next character after the ending delimiter for use in subsequent strtok( ) calls.

On each subsequent call with a null pointer as the s1 argument, strtok( ) behaves similarly, but starts the search at the character that follows the previous delimiter. You can specify a different set of delimiters in the s2 argument on each call. The locations that strtok( ) reads from using s2 and writes to using s1 on any given call must not overlap.

Example

 char *mnemonic, *arg1, *arg2, *comment; char line[ ] = "    mul eax,[ebp+4]    ; Multiply by y\n"; mnemonic = strtok( line, " \t" );  // First word, between spaces or tabs. arg1 = strtok( NULL, ",");         // From there to the comma is arg1.                                    // (Trim off any spaces later.) arg2 = strtok( NULL, ";\n" );      // From there to a semicolon or line end. comment = strtok( NULL, "\n\r\v\f" );  // From there to end of line or page. printf( "Command:      %s\n"         "1st argument: %s\n"         "2nd argument: %s\n"         "Comment:      %s\n\n",         mnemonic, arg1, arg2, comment ); 

This sample produces the following output:

 Command:      mul 1st argument: eax 2nd argument: [ebp+4] Comment:       Multiply by y 

See Also

strspn( ), strcspn( ), strstr( ), wcstok( )



C(c) In a Nutshell
C in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596006977
EAN: 2147483647
Year: 2006
Pages: 473

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net