Los strings y la concatenación - Curso de C++ - Capítulo 7

Curso de c++ desde cero

¿Qué son los strings?

Los strings son cadenas de caracteres (texto). En ellos podemos almacenar tanto letras, como números y símbolos.

En C++ los strings se distinguen por el tipo de dato string y por las comillas dobles que siempre envuelven el texto.

Código C++

string pais = "Italia";

Cuando almacenas un número en un string, este pasa a ser un número más en el texto, no son operables. En la línea 1, tienes un número operable, en la 3, no, solo es texto.

Código C++

int numero1 = 10;

string numero2 = "10";

¿Es necesario #include <string>?

Ahora viene cuando se complica un poquito el asunto. No te asustes. No mucho.

Para utilizar el tipo de dato string, hay que poner el archivo de encabezado #include <string>.

Si lo pruebas como en el siguiente ejemplo, no tendrás problemas sin añadirlo:

Código C++

#include <windows.h>
#include <iostream>

using namespace std;

int main()
{
	SetConsoleOutputCP(1252);

	string sitioWeb = "www.programacionfacil.org";

	cout << sitioWeb;
}

Entonces, si funciona, ¿para qué tengo que añadir el encabezado #include <string>?

En este caso, ha habido suerte y el encabezado #include <iostream> depende de #include <string>, pero no es obligatrio que los encabezados estándar se incluyan entre sí (salvo excepciones que no voy a explicar ahora). El caso, es que te puede funcionar en Visual Studio 2022 con su compilador (traductor de lenguaje de alto nivel como C++ a lenguaje máquina que entiende el hardware), pero puede que en otro no, por lo tanto, para no dejar cosas al azar, inclúyelo cada vez que tengas que utilizar strings.

Te debe quedar el código así:

Código C++

#include <windows.h>
#include <iostream>
#include <string>

using namespace std;

int main()
{
	SetConsoleOutputCP(1252);

	string sitioWeb = "www.programacionfacil.org";

	cout << sitioWeb;
}

El encabezado #include <windows.h>, no tiene nada que ver aquí. Lo digo por si vienes solo para este capítulo y no estás haciendo el curso.

¿Qué es concatenar? ¿Cómo se concatena?

Concatenar es la acción de unir dos strings (también dos variables que contienen strings).

Para concatenar strings, podemos utilizar el operador de adición + que también es el que se utiliza para sumar.

Código C++

string nombre = "Enrique";
string apellido1 = "Barros";
string apellido2 = "Fernández";

string nombreCompleto = nombre + apellido1 + apellido2;

cout << nombreCompleto;

terminal Resultado en la consola terminal

¡Vaya! la concatenación funciona, pero no deja espacios...

EnriqueBarrosFernández

No te preocupes. Utiliza la concatenación para añadir espacios. Hasta incluso, un punto al final, porqué no.

Código C++

string nombre = "Enrique";
string apellido1 = "Barros";
string apellido2 = "Fernández";

string nombreCompleto = nombre + " " + apellido1 + " " + apellido2 + ".";

cout << nombreCompleto;

terminal Resultado en la consola terminal

Enrique Barros Fernández.

Concatenar con la función append()

Tenemos una función disponible, llamada append() con la que podemos concatenar sin el símbolo de adición. Es un poco más complicado, pero lo debes conocer.

Código C++

string nombre = "Enrique";
string apellido1 = "Barros";
string apellido2 = "Fernández";

string nombreCompleto = nombre.append(" " + apellido1 + " ").append(apellido2 + ".");

cout << nombreCompleto;

terminal Resultado en la consola terminal

Llamamos a la variable nombre. Con un punto, llamamos a la función que queramos utilizar con esta variable (ya hablaré de las funciones, ahora no te preocupes por ellas). La función append(), entre sus paréntesis espera un string para concatenar (o varios). Puesto que no separa los strings concatenados, le he añadido un string con un espacio, le concateno el string de apellido1, otro espacio tras este y a todo esto, le añado con otro punto, otro append().

Enrique Barros Fernández.

Utiliza la forma que mejor te vaya, esta es un poco más difícil. En programación hay muchos caminos para hacer lo mismo.