Tokenizing a string means breaking it up into smaller chunks or tokens based on some delimiter(s). The tokens can then be processed individually. In C++, one of the common ways to tokenize a string is by using the std::istringstream class in conjunction with the getline() function. Another approach is using the strtok() function, but it modifies the original string, so care must be taken.
std::istringstream and getline():This method is safer and more C++-styled.
Example:
#include <iostream> #include <sstream> #include <string> #include <vector> int main() { std::string str = "Hello, World! How are you?"; std::vector<std::string> tokens; std::istringstream tokenStream(str); std::string token; while (std::getline(tokenStream, token, ' ')) { // Using space as a delimiter tokens.push_back(token); } for (const auto& t : tokens) { std::cout << t << std::endl; } return 0; } strtok():This is a C-style approach and requires care since it modifies the original string.
Example:
#include <iostream> #include <cstring> #include <vector> int main() { char str[] = "Hello, World! How are you?"; std::vector<char*> tokens; char* token = std::strtok(str, " "); // Using space as a delimiter while (token != nullptr) { tokens.push_back(token); token = std::strtok(nullptr, " "); } for (const auto& t : tokens) { std::cout << t << std::endl; } return 0; } Note: Using strtok() is generally discouraged in modern C++ due to its non-thread-safe nature and its modification of the input string. If you opt for this method, ensure you understand its limitations and potential pitfalls.
", " (space after the comma) as a delimiter.std::istringstream method, you can easily change the delimiter in getline() to anything else like ,, ;, \n, etc.tokens vector to reduce reallocations: tokens.reserve(estimated_size);.Tokenizing a string is a common operation in text processing. The choice of method often depends on the specific requirements of your application, but the std::istringstream approach is generally more idiomatic and safer in C++. The strtok() function can be used when dealing with C-style strings and legacy codebases but comes with its set of precautions.
android-gridview ssrs-2012 windows-7 final program-entry-point delete-directory chunked angular-router android-scrollbar rtsp