C++ Función de cadena: strcpy(), strcat(), strlen(), strcmp() Ejemplo

¿Qué es una cadena?

Una cadena es una secuencia de caracteres. A C++ string es un objeto de la clase std::string. Los caracteres son secuencias almacenadas de bytes con acceso a un solo byte de carácter permitido.

C++ Las cadenas asignan memoria de forma dinámica. Si es necesario, se puede asignar más memoria a la cadena durante el tiempo de ejecución. Como no hay una asignación previa de memoria, no se desperdicia memoria. Podemos realizar varias operaciones con cadenas, incluidas comparaciones, concatenaciones, conversiones, 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 Lenguaje de programación C. C++ sigue apoyándolo. Es simplemente una matriz unidimensional de caracteres que termina con un carácter nulo (\0). Una cadena terminada en nulo tiene caracteres que forman la cadena seguidos de un 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 mantener 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. El 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 varias operaciones con cadenas. Está escrita como std::string.

Para usar esta clase, primero debemos incluirla en nuestro espacio de trabajo usando 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:

Accediendo a valores de cadena

Aquí hay una captura de pantalla del código:

Accediendo a valores de cadena

Explicación del código:

  1. Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
  2. Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
  3. Llamar a la función main() dentro de la cual se debe agregar la lógica del programa. El { marca el inicio del cuerpo de la función main().
  4. 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.
  5. Imprimiendo algún texto en la consola.
  6. Imprimiendo el valor de la cadena denominada nombre en la consola.
  7. La función main() debería devolver un valor si el programa funciona bien.
  8. 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:

Accediendo a valores de cadena

Aquí hay una captura de pantalla del código:

Accediendo a valores de cadena

Explicación del código:

  1. Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
  2. Incluyendo la clase de cadena estándar en nuestro código.
  3. Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
  4. Llamar a la función main() dentro de la cual se debe agregar la lógica del programa. El { marca el inicio del cuerpo de la función main().
  5. Declarando una cadena y dándole el nombre nombre. La cadena almacenará el valor Guru99.
  6. Imprimiendo el valor del nombre de la cadena junto con algún texto en la consola.
  7. La función main() debería devolver un valor si el programa funciona bien.
  8. 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 esto. Estas funciones están definidas en la clase CString, por lo tanto, debemos incluirla en nuestro código para poder utilizar las funciones. Discutamos algunos:

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. 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, cadena1 y cadena2, son las cadenas que se concatenarán. La función anterior concatenará la cadena cadena2 al final de la cadena cadena1.

strlen ()

Esta es la función de longitud de la cadena. Devuelve la longitud de la cadena que se le pasa como argumento.

Sintaxis:

strnlen(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 cadena1 y cadena2 son similares, menor que 0 si cadena1cadena2.

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:

Funciones de cadena en C++

Aquí hay una captura de pantalla del código:

Funciones de cadena en C++

Explicación del código:

  1. Incluyendo el archivo de encabezado iostream en nuestro código. Nos permitirá leer y escribir en la consola.
  2. Incluyendo la clase CString estándar en nuestro código.
  3. Incluyendo el espacio de nombres estándar para usar sus clases y funciones sin llamarlo.
  4. Llamar a la función main() dentro de la cual se debe agregar la lógica del programa. El { marca el inicio del cuerpo de la función main().
  5. Declarando una cadena de 10 caracteres y dándole el nombre nombre1. La cadena almacenará el valor Guru99.
  6. Declarando una cadena de 10 caracteres y dándole el nombre nombre2. La cadena almacenará el valor John.
  7. Declarando una cadena de 10 caracteres y dándole el nombre nombre3.
  8. Declarando un variable entera llamado len.
  9. Copiando la cadena nombre1 en la cadena nombre3.
  10. Imprimiendo el valor de la cadena nombre1 junto con algún texto en la consola. Debería imprimir Guru99.
  11. Concatenando las cadenas nombre2 al final de la cadena nombre1. El valor de nombre1 ahora es Guru99John.
  12. Imprimiendo el valor de la cadena nombre1 junto con algún texto en la consola. Debería imprimir Guru99John
  13. Determinar la longitud de la cadena denominada nombre1 y asignar el valor de longitud a la variable len.
  14. Imprimiendo el valor de la variable len junto con algún otro texto en la consola.
  15. La función main() debería devolver un valor si el programa funciona bien.
  16. Fin del cuerpo de la función main().

Resumen

  • Una cadena es una secuencia de caracteres.
  • Las cadenas pertenecen a la clase de cadena estándar en C++.
  • Podemos declarar cadenas utilizando la cadena de caracteres estilo C o la clase de cadena estándar.
  • La función strcpy() copia una cadena en otra.
  • La función strcat() concatena dos cadenas.
  • La función strlen() devuelve la longitud de una cadena.
  • La función strcmp() compara dos cadenas.