¿Ya dominas lo básico? Un curso estructurado de C++ es la vía rápida para dar el salto.
Ver cursos de C++ en UdemyEnlace de afiliado. No te cuesta nada extra.
- 01Preparar el entorno (lo que necesitas)
- 02Tu primera salida (cout)
- 03Variables y tipos (int/double/string/bool)
- 04Condicionales (sentencias if)
- 05Bucles (sentencias for)
- 06Escribir una función
- 07Trabajar con arrays
- 08Bucles (sentencias while)
- 09Fundamentos de los punteros
- 10Referencias
- 11Clases (programación orientada a objetos)
- 12Constructores y destructores
- 13Herencia
- 14Usar vector (la biblioteca estándar)
- 15Manipular texto (string)
- 16Estructuras (struct)
- 17Gestión de errores (try/catch)
- 18El operador ternario
- 19La sentencia switch
- 20[Aplicado] Construye un mini sistema de inventario
Manipular texto (string)
En esta lección trabajarás con cadenas de texto: medirlas, unirlas y extraer partes.
std::string maneja el texto sin que tengas que preocuparte de la memoria. length() o size() dan la longitud, + concatena y substr(inicio, cantidad) extrae un fragmento. Necesita #include <string>.
El código de ejemplo mide una cadena y extrae sus primeros 5 bytes. Fíjate en que el resultado es ¡Hol, solo cuatro caracteres: el signo ¡ ocupa 2 bytes en UTF-8, así que 5 bytes no equivalen a 5 caracteres. Las posiciones empiezan en 0.
Ese es justo el punto delicado: length() y substr() trabajan con bytes, no con caracteres. En español, con acentos y signos de apertura, los números salen mayores de lo que esperas y un corte puede caer a mitad de un carácter. Para manejar caracteres de verdad hacen falta bibliotecas específicas de Unicode.
En el trabajo real conviene distinguir std::string de las cadenas al estilo C (char*), que siguen apareciendo en APIs antiguas y que sí exigen gestionar la memoria a mano.
🧪 Este sitio no puede compilar ni ejecutar C++ directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).
