Cómo iterar sobre palabras en una cadena en C++: análisis de métodos populares
¡Hola a todos! Soy nuevo en C++ y no puedo entender cómo dividir correctamente una cadena en palabras individuales y recorrerlas en un bucle. En Python esto se hace en una línea con `split()`, pero en C++ todo es más complicado.
Tengo una cadena como: `"Привет, как дела? У меня всё хорошо!"` Necesito imprimir cada palabra por separado, ignorando signos de puntuación y espacios. Probé usar `std::stringstream`, pero no elimina comas ni signos de interrogación — se quedan pegados a las palabras. Por ejemplo, obtengo `"Привет,"` en lugar de `"Привет"`.
Intenté escribir mi propia solución con búsqueda manual de espacios usando `std::string::find`, pero el código queda enorme y confuso. Además, mi versión no funciona con tabulaciones ni múltiples espacios.
Por favor, indíquenme cómo hacerlo correctamente y de forma elegante. Preferiblemente en C++ moderno (11/14/17). Proporcionen un ejemplo de código que:
1. Divida la cadena en palabras por espacios y signos de puntuación.
2. Ignore espacios adicionales y cadenas vacías.
3. Funcione.
No answers yet.
Inicia sesión para dejar una respuesta