Cortar cadena en C++ usando substr

Cortar cadena en C++

En este post de programación en C++ con cadenas o strings te mostraré cómo extraer una subcadena de una cadena.

Dicho en otras palabras, te enseñaré a cortar una cadena en C++. Por ejemplo, extraer solo los primeros 4 N caracteres de una string o extraer una porción de la misma.

Todo esto lo haremos con la función substr de C++.

Explicando la función

Vamos a trabajar con substr en C++. Esta función la tienen las cadenas de este lenguaje, de modo que la invocamos así:

cadena_nueva = cadena.substr()

Pero debemos pasarle argumentos a substr. El primer argumento indica el índice desde dónde comenzar a extraer, y el segundo argumento indica cuántos caracteres extraer.

No te confundas, pues para cortar una cadena no basta con indicar el inicio y fin, sino que debemos especificar el inicio y la cantidad que se debe extraer.

Ejemplo: extraer subcadena con C++

Cortar cadena en C++ usando substr
Cortar cadena en C++ usando substr

En este ejemplo tenemos un nombre con apellidos, pero vamos a cortar la cadena de modo que ahora obtengamos una nueva porción que solo tenga el nombre.

Debido a que sabemos que el nombre tiene 4 letras podemos invocar a substr para que tome 4 caracteres desde el índice 0. Así:

#include <iostream>
using namespace std;

int main()
{
    // https://parzibyte.me/blog
    string nombreCompleto = "Luis Cabrera Benito";
    // Extraer solo el nombre. Desde 0 tomar 4 caracteres
    string nombre = nombreCompleto.substr(0, 4);
    cout << "El nombre completo es " << nombreCompleto << " y el nombre sin apellidos es '" << nombre << "'" << endl;
}

La salida ya la pudiste ver en la imagen anterior.

Otro ejemplo para cortar una string con C++

Para finalizar el post (pues con la sintaxis es suficiente) te mostraré otro ejemplo. En este caso vamos a extraer el año, mes y día de una fecha.

La fecha que vamos a descomponer tiene el formato YYYYMMDD. El código para este caso es el siguiente:

#include <iostream>
using namespace std;

int main()
{
    // https://parzibyte.me/blog
    string fecha = "20211128";
    string anio = fecha.substr(0, 4);
    string mes = fecha.substr(4, 2);
    string dia = fecha.substr(6, 2);
    // Extraer solo el nombre. Desde 0 tomar 4 caracteres
    cout << "Año " << anio << " Mes " << mes << " Día " << dia << endl;
}

Ahora invocamos a substr cambiando un poco los argumentos. Para el año extraemos 4 caracteres desde el índice 0, para el mes tomamos 2 caracteres desde el índice 4 y finalmente para el día tomamos 2 caracteres desde el índice 6.

La salida en este caso es: Año 2021 Mes 11 Día 28.

Finalmente te dejo con más tutoriales de programación en C++.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *