Resumen

Trabajar con texto en C++ no es tan directo como en otros lenguajes de programación. A diferencia de tipos primitivos como int, char o bool, las cadenas de texto no existen como tipo nativo del lenguaje. Para poder utilizarlas es necesario recurrir a la biblioteca estándar de C++, un conjunto de librerías que amplían las capacidades del lenguaje con estructuras y funciones listas para usar.

¿Qué ofrece la biblioteca estándar de C++?

La biblioteca estándar es una colección de librerías que se importan mediante la directiva #include. Cada una está especializada en un área distinta [01:00]:

  • iostream: entrada y salida de datos, ya conocida por el uso de cout y cin.
  • string: manejo de cadenas de texto.
  • cmath: operaciones matemáticas como exponentes, senos y cosenos.
  • stdexcept: manejo de errores.
  • array: trabajo con arrays de tamaño fijo.
  • vector: manejo de vectores de datos dinámicos.

Cada librería incluye sus propias funciones internas que permiten operar sobre las estructuras de datos correspondientes.

¿Por qué no alcanza con listas de caracteres?

Antes de conocer la librería string, la única alternativa para representar texto era usar una lista de caracteres (char) [02:15]. Por ejemplo, para escribir la palabra "hola" se necesitaba declarar algo así:

cpp char texto[] = {'h', 'o', 'l', 'a'};

Aunque cout imprime correctamente el contenido, esta forma tiene limitaciones importantes:

  • No es eficiente escribir palabra por palabra carácter a carácter.
  • Conocer el número de caracteres requiere trucos como la fórmula con sizeof.
  • Procesar el texto en estructuras de control como if o switch resulta complicado.
  • Recorrer cada letra exige implementar un ciclo manualmente.

¿Cómo se declara un string en C++?

Al importar la librería con #include <string>, se habilita el tipo de dato string [03:50]. La declaración se simplifica enormemente:

cpp #include <string> using namespace std;

string texto = "hola mundo";

Ya no se necesita la sintaxis de lista de caracteres. Las dobles comillas envuelven directamente el contenido y la variable almacena toda la cadena de forma limpia.

¿Qué métodos útiles ofrece string?

Una ventaja clave del tipo string es que trae métodos incorporados. Para obtener el tamaño de una cadena basta con llamar a .size() [04:30]:

cpp cout << texto.size(); // Imprime 10

Esta función pertenece a cualquier variable de tipo string y devuelve la cantidad de caracteres que contiene, sin necesidad de cálculos manuales con sizeof.

¿Cómo convertir strings a números en C++?

Un escenario frecuente es recibir datos del usuario mediante cin y necesitar procesarlos como valores numéricos. Si el dato llega como cadena de texto, la librería string ofrece funciones de conversión [05:10]:

  • stoi (string to int): convierte una cadena a entero.
  • stof (string to float): convierte una cadena a número de punto flotante.

cpp string numero_texto = "10"; int numero = stoi(numero_texto);

string decimal_texto = "10.5"; float decimal = stof(decimal_texto);

Una vez convertidos, estos valores permiten realizar operaciones matemáticas y algebraicas sin errores. Aunque cout no muestre diferencia visual entre un string y un número, internamente C++ no permite operar directamente con cadenas de texto como si fueran valores numéricos.

cpp float resultado = stof("10.5") + 5; // Operación válida

Estas funciones son parte de las herramientas que la biblioteca estándar pone a disposición para que el manejo de datos sea más robusto y flexible. Existen muchas más funciones dentro de <string> y de otras librerías esperando ser exploradas. ¿Cuál librería de la biblioteca estándar te gustaría probar primero? Comparte tu experiencia en los comentarios.