How to use strtok() Function In C++
The strtok() function returns the next token separated by a delimiter in a string. The tokens are pushed into the vector until the null pointer is reached.
C++
// C++ Program for Conversion // String To Vector using Delimiter // Using strtok() function #include<bits/stdc++.h> using namespace std; vector<string> split(string str, char * delimiter) { vector<string> v; char *token = strtok ( const_cast < char *>(str.c_str()), delimiter); while (token != nullptr) { v.push_back(string(token)); token = strtok (nullptr, delimiter); } return v; } int main() { // Delimiter is " " string s = "w3wiki is a computer science portal" ; vector<string> res = split(s, " " ); for ( int i = 0; i < res.size(); i++) { cout << res[i] << endl; } // Delimiter is ** s = "w3wiki**is**a**computer**science**portal" ; res = split(s, "**" ); for ( int i = 0; i < res.size(); i++) { cout << res[i] << endl; } return 0; } |
Output
w3wiki is a computer science portal w3wiki is a computer science portal
C++ String to Vector Using Delimiter
Delimiters are used as separators between the characters or words in a string so that different results can get separated by the delimiter. In this article let us see the different ways in which a string with delimiters can be converted to a vector of words after getting separated by delimiters.
Example:
string x=”A B C”;
string y=”A*B*C”;
// Separate x into [‘A’,’B’,’C’] with delimiter ‘ ‘
// Separate y into [‘A’,’B’,’C’] with delimiter ‘*’
Methods that can be used to perform this operation are :
- Using find() function
- Using strtok() function
- Using getline() and stringstream
- Using find_first_not_of() with find() function
- Using regex_token_iterator