¿Cómo dividir una cadena en tokens (palabras) en C++? Guía detallada
¡Hola a todos! Acabo de empezar a aprender C++ y me encontré con un problema que parece simple, pero no encuentro una solución normal.
Necesito dividir una cadena en palabras individuales (tokens). Por ejemplo, tengo la cadena "Hello, world! This is C++". Quiero obtener un array o vector: ["Hello,", "world!", "This", "is", "C++"]. En Python simplemente escribiría `"Hello, world! This is C++".split()` y ya está. Pero en C++ no veo un método igual de simple.
Sé que existen `std::string` y `std::stringstream`, pero ¿cómo extraer palabras individuales de ellos? Intenté escribir algo como:
```cpp
#include
#include
#include
#include
int main() {
std::string str = "Hello, world! This is C++";
std::stringstream ss(str);
std::string word;
std::vector tokens;
while (ss >> word) {
tokens.push_back(word);
}
for (const auto& w : tokens) {
std::cout << w << std::endl;
}
return 0;
}
```
Pero e