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().




