C provides two functions strtok() and strtok_r() for splitting a string by some delimiter. Splitting a string is a very common task. For example, we have a comma separated list of items from a file and we want individual items in an array.
// Splits str according to given delimiters. // and returns next token. It needs to be called // in a loop to get all tokens. It returns NULL // when there are no more tokens. char * strtok(char str, const char *delims);
Geeks for Geeks
Just like strtok() function in C, strtok_r() does the same task of parsing a string into a sequence of tokens. strtok_r() is a reentrant version of strtok()
There are two ways we can call strtok_r()
// The third argument saveptr is a pointer to a char * // variable that is used internally by strtok_r() in // order to maintain context between successive calls // that parse the same string. char *strtok_r(char *str, const char *delim, char **saveptr);
Below is a simple C program to show the use of strtok_r() :
Geeks for Geeks
Another Example of strtok :
Geeks for geeks Contribute
strtok can be used to split a string in multiple strings based on some separators. A simple CSV file support might be implemented using this function. CSV files have commas as delimeters.
1997, Ford, E350, ac, 3000.00,
This article is contributed by MAZHAR IMAM KHAN and shantanu_23. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- isalpha() and isdigit() functions in C with cstring examples.
- Commonly used String functions in C/C++ with Examples
- Methods vs. Functions in C++ with Examples
- Virtual Functions and Runtime Polymorphism in C++ | Set 1 (Introduction)
- fill() and fill_n() functions in C++ STL
- Forward List in C++ | Set 1 (Introduction and Important Functions)
- strdup() and strndup() functions in C/C++
- Binary Search functions in C++ STL (binary_search, lower_bound and upper_bound)
- Ceil and Floor functions in C++
- Pure Virtual Functions and Abstract Classes in C++
- Wide char and library functions in C++
- Find and print duplicate words in std::vector<string> using STL functions
- SQL general functions | NVL, NVL2, DECODE, COALESCE, NULLIF, LNNVL and NANVL
- Python program to count upper and lower case characters without using inbuilt functions
- asin() and atan() functions in C/C++ with Example
- Higher Order Functions and Currying
- Explicitly Defaulted and Deleted Functions in C++ 11
- beta(), betaf() and betal() functions in C++ STL
- std::legendre, std::legendref and std::legendrel functions in C++17
Improved By : argone