En el artículo anterior analizamos algunas funciones básicas que nos permiten capturar y mostrar cadenas de caracteres. En este artículo analizaremos para que sirven las funciones strcpy y strcat, y cómo utilizarlas en C. Estas funciones son muy necesarias a la hora de querer manipular, analizar o modificar una cadena de caracteres.
Cabe señalar que para el uso de las siguientes funciones es necesario incluir la librería “string.h”. Si quieres saber cómo incluir esta librería visita el artículo anterior.
strcpy: Función que sirve para copiar (pasar) una cadena de caracteres a otra. Por ejemplo, si tenemos una cadena2 que tiene como contenido “Calle”, al aplicar esta función ahora la cadena1 también tendrá como contenido “Calle”. La sintaxis para utilizar la función es la siguiente:
Código:
strcpy(cadena1, cadena2); |
---|
strncpy: Tiene el mismo comportamiento que la función strcpy, pero en esta puedes especificar la cantidad exacta de caracteres que quieres que se pasen. Si tenemos la cadena2 con el contenido “Dirección”, y en esta función le especificamos que copie 4 caracteres, solo se pasará “Dire” a la cadena1. La sintaxis para utilizar la función es la siguiente:
Código:
strncpy(cadena1, cadena2, numero); |
---|
Donde numero es la cantidad de caracteres que quieres copiar.
strcat: Función que sirve para concatenar (unir) dos cadenas de caracteres. Por ejemplo, si tenemos una cadena1 con el contenido “Solución “ y una cadena2 con el contenido “Ingenieril”, al aplicar esta función el resultado será “Solución Ingenieril”. La sintaxis para utilizar la función es la siguiente:
Código:
strcat(cadena1, cadena2); |
---|
strncat: Tiene el mismo comportamiento que la función strcat, pero en esta puedes especificar la cantidad de caracteres que quieres que se concatenen. Por ejemplo, si tenemos una cadena1 que contenga “Comprar ” y una cadena2 que contenga “artículo nuevo”, y le especificamos que solo concatene 8 caracteres, el resultado será “Comprar artículo”. La sintaxis para utilizar la función es la siguiente:
Código:
strncat(cadena1, cadena2, numero); |
---|
Donde numero es la cantidad de caracteres que quieres concatenar.
Ejercicio 1: Realizar un programa que copie el valor de una cadena a otra utilizando strcpy. También utilizar la función strncpy limitando el número de caracteres a 5, para observar la diferencia.
Código:
/* Ejemplo de uso de función "strcpy" y "strncpy" - Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <string.h> int main() { char cadena1[20]=""; //Declaramos cadena vacía char cadena2[20]="Ejemplo de cadena"; //Declaramos cadena con contenido char cadena3[20]=""; //Declaramos cadena vacía printf("Mostrando valor de cadena1 sin modificacion: "); puts(cadena1); //Desplegamos el valor de la variable "cadena1" printf("Mostrando valor de cadena2 sin modificacion: "); puts(cadena2); //Desplegamos el valor de la variable "cadena2" printf("Mostrando valor de cadena3 sin modificacion: "); puts(cadena3); //Desplegamos el valor de la variable "cadena3" printf("\n"); //Salto de línea printf("...Copiando el valor de la cadena2 a la cadena1.."); strcpy(cadena1, cadena2); //Pasamos cadena2 a cadena1 printf("\n"); //Salto de línea printf("Mostrando valor de cadena1 modificado: "); puts(cadena1); //Después del copiado, desplegamos el valor de la variable "cadena1" printf("\n"); //Salto de línea printf("...Copiando el valor de los primeros 5 caracteres de la cadena2 a la cadena3...\n"); strncpy(cadena3, cadena2, 5); //Copiamos los primeros 5 caracteres de cadena2 a cadena1 printf("Mostrando valor de cadena3 modificado: "); puts(cadena3); //Después del copiado, desplegamos el valor de la variable "cadena3" return 0; } |
---|
Ejercicio 2: Realizar un programa que concatene el valor de una cadena a otra utilizando strcat. También utilizar la función strncat limitando el número de caracteres a 5, para observar la diferencia.
Código:
/* Ejemplo de uso de función "strcat" y "strncat" - Por Solución Ingenieril*/ #include <stdio.h> /* Declaración librerías*/ #include <stdlib.h> #include <string.h> int main() { char cadena1[20]="Solucion "; //Declaramos cadenas con contenido char cadena2[20]="Ingenieril"; char cadena3[20]="Concatenar "; char cadena4[20]="Cadenas"; printf("Mostrando valor de cadena1 sin modificacion: "); puts(cadena1); //Desplegamos el valor de la variable "cadena1" printf("Mostrando valor de cadena2 sin modificacion: "); puts(cadena2); //Desplegamos el valor de la variable "cadena2" printf("Mostrando valor de cadena3 sin modificacion: "); puts(cadena3); //Desplegamos el valor de la variable "cadena3" printf("Mostrando valor de cadena4 sin modificacion: "); puts(cadena4); //Desplegamos el valor de la variable "cadena4" printf("\n"); //Salto de línea printf("...Concatenando el valor de la cadena2 a la cadena1.."); strcat(cadena1, cadena2); //Concatenamos cadena2 a cadena1 printf("\n"); //Salto de línea printf("Mostrando valor de cadena1 modificado: "); puts(cadena1); //Después del concatenado, desplegamos el valor de la variable "cadena1" printf("\n"); //Salto de línea printf("...Concatenando el valor de los primeros 5 caracteres de la cadena4 a la cadena3...\n"); strncat(cadena3, cadena4, 5); //Concatenamos los primeros 5 caracteres de cadena4 a cadena3 printf("Mostrando valor de cadena3 modificado: "); puts(cadena3); //Después del concatenado, desplegamos el valor de la variable "cadena3" return 0; } |
---|
Ejercicio 1: Como podemos observar, la función strcpy copió correctamente el valor de la cadena2 a la cadena1 y también la función strncpy copió correctamente solamente los primeros 5 caracteres de la cadena2 a la cadena3. Como conclusión, observamos que strcpy copia toda la cadena, mientras que strncpy solo copia la cantidad que caracteres que nosotros le especifiquemos.
Ejercicio 2: En este caso, la función strcat concatenó correctamente el valor de la cadena2 a la cadena1 y la función strncat concatenó solamente los primeros 5 caracteres de la cadena4 a la cadena3. Confirmamos entonces que strcat sirve para concatenar toda la cadena, mientras que strncat solo concatena la cantidad de caracteres que nosotros le especifiquemos.
Es muy común el manejo de cadenas de caracteres en programas de alto nivel, y es importante saber cómo utilizar las funciones que pueden modificar estas cadenas. En este artículo analizamos 4 funciones básicas que sirven para el copiado y concatenado de cadenas de caracteres.