stringstream para analizar strings
Utilice std::stringstream para dividir texto en tokens y analizarlo como valores tipados.
stringstream para analizar strings es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.
¿Qué es un stringstream?
std::stringstream envuelve una cadena en una interfaz de iostream. Lea y escriba en él con >> y <<, como si fuera cin o cout.
#include <sstream>
std::stringstream ss;Construcción de cadenas con stringstream
Utilícelo para construir cadenas complejas a partir de tipos combinados. Llame a .str() para obtener el resultado.
std::stringstream out;
out << "User: " << name << ", Age: " << age;
std::string result = out.str();Análisis con stringstream
Inicialícelo a partir de una cadena y extraiga valores con >>. Divide el contenido en tokens usando los espacios en blanco.
std::stringstream in("42 3.14 hello");
int i; double d; std::string s;
in >> i >> d >> s;Lectura de una línea en tokens
Combine getline con stringstream para dividir una línea en tokens cada vez.
std::string line = "1 2 3 4 5";
std::stringstream ss(line);
int n;
while (ss >> n) {
std::cout << n * n << " ";
}
// 1 4 9 16 25División mediante un delimitador
Pase un delimitador a getline sobre un stringstream para dividir por comas, puntos y coma o cualquier otro carácter.
std::string csv = "apple,banana,cherry";
std::stringstream ss(csv);
std::string fruit;
while (std::getline(ss, fruit, ',')) {
std::cout << fruit << "\n";
}istringstream y ostringstream
Existen tres variantes:
std::istringstream— solo lecturastd::ostringstream— solo escriturastd::stringstream— ambas operaciones
Utilice la variante más específica para mejorar la claridad.
Comprobación de errores de análisis
Si la extracción falla (por ejemplo, debido a un tipo incorrecto), el stream establece el indicador de error fail. Compruebe !ss o ss.fail() después de la extracción.
std::stringstream ss("not_a_number");
int x;
if (!(ss >> x)) {
std::cout << "Parse failed";
}Restablecimiento de un stringstream
Para reutilizar un stringstream, borre su estado y su contenido.
std::stringstream ss;
ss << "first";
ss.str(""); // clear contents
ss.clear(); // clear flags
ss << "second";De número a cadena
Para conversiones sencillas, std::to_string es más corto que un stringstream.
std::string s = std::to_string(42); // "42"
std::string p = std::to_string(3.14); // "3.140000"De cadena a número sin streams
std::stoi, std::stod y std::stoll analizan números a partir de cadenas y lanzan excepciones si la entrada no es válida.
int n = std::stoi("42");
double d = std::stod("3.14");
// std::stoi("xyz") throws std::invalid_argumentC++17 std::from_chars
Para obtener la máxima velocidad, std::from_chars de <charconv> analiza datos sin excepciones ni asignaciones de memoria. Es ideal para rutas críticas.
Comprobación rápida
¿Qué cabecera debe incluir para utilizar std::stringstream?
Resumen
std::stringstream convierte cadenas en streams para facilitar el análisis y el formateo. Combínelo con std::getline para dividir por delimitadores. En casos sencillos, prefiera std::to_string y std::stoi.
Preguntas frecuentes
¿La lección «stringstream para analizar strings» es gratis?
Sí — el texto completo de «stringstream para analizar strings» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.
¿Qué aprenderé en «stringstream para analizar strings»?
Utilice std::stringstream para dividir texto en tokens y analizarlo como valores tipados. Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar C++ Academy?
No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «stringstream para analizar strings»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de C++ Academy?
Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- std::string frente a arrays de caracteres de estilo C
- Operaciones con strings: concat, substr, find y replace
- stringstream para analizar strings
- Conversiones de strings: to_string y stoi