Conversiones de strings: to_string y stoi
Convierta de forma segura entre strings y tipos numéricos con std::to_string, std::stoi y std::stod.
Conversiones de strings: to_string y stoi es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 4 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.
Por qué son importantes las conversiones de cadenas
Es necesario convertir constantemente entre números y texto: para la entrada del usuario, los archivos de configuración, JSON, las URL y los registros.
std::to_string
std::to_string convierte cualquier tipo numérico integrado en una cadena. Utiliza el formateo predeterminado.
#include <string>
std::string a = std::to_string(42); // "42"
std::string b = std::to_string(-7); // "-7"
std::string c = std::to_string(3.14); // "3.140000"Formateo predeterminado de números decimales
to_string aplicado a un double utiliza seis posiciones decimales. Para obtener un control preciso, utilice std::stringstream con std::fixed y std::setprecision, o std::format en C++20.
std::stoi: de cadena a int
Analice un entero con std::stoi. Omite los espacios en blanco iniciales y se detiene ante el primer carácter que no sea un dígito.
int n = std::stoi("42"); // 42
int m = std::stoi(" -7abc"); // -7 (stops at 'a')Lectura de la posición final
Pase un puntero para recibir el índice donde se detuvo el análisis; resulta útil para analizar cadenas con tipos de datos combinados.
std::string s = "42px";
size_t pos;
int n = std::stoi(s, &pos);
std::cout << pos; // 2 (parsed "42", stopped at 'p')Stoi lanza excepciones con entradas no válidas
Si no se encuentran dígitos, stoi lanza std::invalid_argument. Si el número desborda el rango, lanza std::out_of_range.
try {
int x = std::stoi("not_a_number");
} catch (const std::invalid_argument& e) {
std::cout << "Parse failed";
}Conversiones de base
El tercer argumento selecciona la base (2-36). Pase 0 para detectarla automáticamente a partir del prefijo.
int hex = std::stoi("ff", nullptr, 16); // 255
int bin = std::stoi("1010", nullptr, 2); // 10
int auto_detect = std::stoi("0xff", nullptr, 0); // 255stol stoll stoul stoull
Variantes para los demás tipos enteros:
std::stol— longstd::stoll— long longstd::stoul— unsigned longstd::stoull— unsigned long long
stof stod stold
Variantes de coma flotante para float, double y long double.
double d = std::stod("3.14159");
float f = std::stof("2.71");C++17 std::from_chars: sin excepciones
std::from_chars analiza datos sin lanzar excepciones. Devuelve una estructura con ec (código de error) y ptr (posición final del análisis); es la opción preferida en bucles críticos.
#include <charconv>
std::string s = "42";
int val;
auto result = std::from_chars(s.data(), s.data() + s.size(), val);
if (result.ec == std::errc{}) {
// success
}C++17 std::to_chars: sin asignaciones
Es el inverso de from_chars: escribe un número en un búfer sin realizar asignaciones de memoria. Es la conversión más rápida disponible en la biblioteca estándar.
Comprobación rápida
¿Qué excepción lanza std::stoi("abc")?
Resumen
std::to_string convierte números en cadenas; std::stoi y sus variantes analizan cadenas para convertirlas en números. Ambos lanzan excepciones si fallan; utilice std::from_chars para realizar análisis de alto rendimiento sin excepciones.
Preguntas frecuentes
¿La lección «Conversiones de strings: to_string y stoi» es gratis?
Sí — el texto completo de «Conversiones de strings: to_string y stoi» 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 «Conversiones de strings: to_string y stoi»?
Convierta de forma segura entre strings y tipos numéricos con std::to_string, std::stoi y std::stod. 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 4 de 4.
¿Cuánto tiempo toma la lección «Conversiones de strings: to_string y stoi»?
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