0Pricing
C++ Academy · Lección

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); // 255

stol stoll stoul stoull

Variantes para los demás tipos enteros:

  • std::stol — long
  • std::stoll — long long
  • std::stoul — unsigned long
  • std::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

  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