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

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 = "Parzibyte";
    // 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++.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto