Here's an example on how to use it:
#include<stdio.h> #include<string.h> int main(void) { char str[45] = "Bird!Bird!Bird!The bird is the word!"; char *substr = NULL; /*"Initializes" strtok and gets the first substring*/ substr = strtok(str," !"); /*Loops until there are no more substrings*/ while(substr!=NULL) { /*Prints the token*/ puts(substr); /*Gets the next substrings*/ substr = strtok(NULL," !"); } puts("\nWhat remained from the primary string: "); puts(str); return 0; } /*Output: Bird Bird Bird The bird is the word What remained from the primary string: Bird */The function can be a little odd to use, since it returns a pointer to a substring and not an array of strings like you would probably expect. When using it to split string, the following steps must be completed:
2)To get the next substring, strtok must be called using the NULL pointer instead of the string you want to split. The function will return a pointer to a substring between the first delimiter found and the next delimiter character found (Note: the delimiter characters will not be included).
3)Using a loop you can get all the substrings from the string you want to split (you will still need to call strtok using a NULL pointer, so it will know that you have not changed the string you want to split).
When strtok will finish the splitting process it will return a NULL pointer.
PITFALL:It's very important to know that strtok replaces all delimiters with NULL, so your primary string will be destroyed after it's tokenized.
Question:
References:
http://www.cplusplus.com/reference/cstring/
When strtok will finish the splitting process it will return a NULL pointer.
PITFALL:It's very important to know that strtok replaces all delimiters with NULL, so your primary string will be destroyed after it's tokenized.
Question:
References:
http://www.cplusplus.com/reference/cstring/
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!