C++ Funciones de cadena: strcpy(), strcat(), strlen(), strcmp()
⚡ Resumen inteligente
C++ Las funciones de cadena como `strcpy`, `strcat`, `strlen` y `strcmp` permiten a los programas copiar, unir, medir y comparar texto. Este recurso explica qué es una cadena, cómo declarar cadenas al estilo de C y con `std::string`, acceder a sus valores y aplicar las funciones básicas de cadena con ejemplos.

¿Qué es una cadena?
Una cadena es una secuencia de caracteres. A C++ string es un objeto de la clase std::string. Los caracteres se almacenan como secuencias de bytes, permitiéndose el acceso a un único byte de carácter.
C++ Las cadenas asignan memoria dinámicamente. Se puede asignar más memoria a la cadena durante la ejecución si es necesario. Dado que no hay preasignación de memoria, no se desperdicia memoria. Podemos realizar diversas operaciones con cadenas, como comparación, concatenación, conversión, etc.
Declarar cadenas
C++ admite dos tipos de declaraciones de cadenas:
- Cadena de caracteres estilo C
- Tipo de clase de cadena
Cadena de caracteres estilo C
Este tipo de declaración de cadena se introdujo en el Lenguaje de programación C. C++ sigue siendo compatible. Se trata simplemente de una matriz unidimensional de caracteres terminada con un carácter nulo (\0). Una cadena terminada en nulo tiene los caracteres que la componen seguidos de un carácter nulo.
Considere la declaración de cadena que se proporciona a continuación:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
La declaración anterior crea una cadena que forma la palabra John. La palabra tiene 4 caracteres, pero la cadena tiene un tamaño de 5. El espacio adicional permite almacenar el carácter nulo.
Usando la regla de inicialización de la matriz, podemos escribir la declaración anterior de la siguiente manera:
char name[] = "John";
Tenga en cuenta que no es necesario colocar el carácter nulo al final de la constante de cadena. C++ El compilador colocará automáticamente el '\0' al final de la cadena al inicializar la matriz.
std :: string
El C++ La biblioteca proporciona la clase string, que admite diversas operaciones con cadenas. Se escribe como std::string.
Para utilizar esta clase, primero debemos incluirla en nuestro espacio de trabajo utilizando el preprocesador #include como se muestra a continuación:
#include <string>
A continuación, podemos declarar nuestra cadena usando la palabra clave string. Por ejemplo:
string name = "John";
La declaración anterior creará una cadena llamada nombre para contener el valor John.
Accediendo a valores de cadena
In C++, podemos acceder a los valores de la cadena usando el nombre de la cadena. Por ejemplo:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
Salida:
Aquí hay una captura de pantalla del código:
Code Explicación:
- Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
- Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
- Llamada a la función main() dentro de la cual se debe agregar la lógica del programa. La llave { marca el inicio del cuerpo de la función main().
- Declarando una cadena de caracteres y dándole el nombre nombre. La cadena almacenará el valor John. El espacio extra almacenará el carácter nulo.
- Imprimiendo algún texto en la consola.
- Imprimiendo el valor de la cadena denominada nombre en la consola.
- La función main() debería devolver un valor si el programa funciona bien.
- Fin del cuerpo de la función main().
Aquí hay otro ejemplo usando el C++ clase de cadena estándar:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
Salida:
Aquí hay una captura de pantalla del código:
Code Explicación:
- Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
- Incluyendo la clase de cadena estándar en nuestro código.
- Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
- Llamada a la función main() dentro de la cual se debe agregar la lógica del programa. La llave { marca el inicio del cuerpo de la función main().
- Declarar una cadena y darle el nombre name. La cadena almacenará el valor. Guru99.
- Imprimiendo el valor del nombre de la cadena junto con algún texto en la consola.
- La función main() debería devolver un valor si el programa funciona bien.
- Fin del cuerpo de la función main().
Funciones de cadena en C++
A menudo querrás manipular cadenas. C++ proporciona una amplia gama de funciones que puede utilizar para ello. Estas funciones están definidas en el encabezado, por lo que debemos incluirlo en nuestro código para poder usar las funciones. Analicemos algunas:
strcpy ()
Esta es la función de copia de cadena. Copia una cadena en otra cadena.
Sintaxis:
strcpy(string1, string2);
Los dos parámetros de la función, string1 y string2, son cadenas de texto. La función copiará la cadena string2 en string1.
strcat ()
Esta es la función de concatenación de cadenas. Concatena cadenas.
Sintaxis:
strcat(string1, string2);
Los dos parámetros de la función, string1 y string2, son las cadenas que se van a concatenar. La función anterior concatenará la cadena string2 al final de la cadena string1.
strlen ()
Esta es la función de longitud de la cadena. Devuelve la longitud de la cadena que se le pasa como argumento.
Sintaxis:
strlen(string1);
El parámetro cadena1 es el nombre de la cadena cuya longitud se va a determinar. La función anterior devolverá la longitud de la cadena cadena1.
strcmp ()
Esta es la función de comparación de cadenas. Se utiliza para comparar cadenas.
Sintaxis:
strcmp(string1, string2);
La función anterior devolverá 0 si las cadenas string1 y string2 son similares, menor que 0 si string1 < string2 y mayor que 0 si string1 > string2.
Ejemplo:
El siguiente ejemplo demuestra cómo utilizar las funciones de cadena anteriores:
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
Salida:
Aquí hay una captura de pantalla del código:
Code Explicación:
- Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
- Incluyendo el estándar encabezado en nuestro código.
- Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
- Llamada a la función main() dentro de la cual se debe agregar la lógica del programa. La llave { marca el inicio del cuerpo de la función main().
- Declarar una cadena de 10 caracteres y darle el nombre name1. La cadena almacenará el valor. Guru99.
- Declarando una cadena de 10 caracteres y dándole el nombre nombre2. La cadena almacenará el valor John.
- Declarando una cadena de 10 caracteres y dándole el nombre nombre3.
- Declarando un variable entera llamado len.
- Copiando la cadena nombre1 en la cadena nombre3.
- Imprimir el valor de la cadena name3 junto con algún texto en la consola. Debería imprimir Guru99.
- Concatenando la cadena name2 al final de la cadena name1. El valor de name1 ahora es Guru99Juan.
- Imprimir el valor de la cadena name1 junto con algún texto en la consola. Debería imprimir Guru99Juan.
- Determinar la longitud de la cadena llamada name1 y asignar el valor de dicha longitud a la variable len.
- Imprimir el valor de la variable len junto con otro texto en la consola.
- La función main() debería devolver un valor si el programa funciona bien.
- Fin del cuerpo de la función main().




