0Pricing
C++ Academy · Lección

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 25

Divisió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 lectura
  • std::ostringstream — solo escritura
  • std::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_argument

C++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

  1. std::string frente a arrays de caracteres de estilo C
  2. Operaciones con strings: concat, substr, find y replace
  3. stringstream para analizar strings
  4. Conversiones de strings: to_string y stoi
← Volver a C++ Academy