PUBLICIDAD


Funciones strcpy y strcat para copiar y concatenar cadenas - Programación en C


Introducción

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.

Marco teórico

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.


Publicidad


Ejercicios

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;
}

Resultados

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.

Funciones strcpy y strcat para copiar y concatenar cadenas - 1

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.

Funciones strcpy y strcat para copiar y concatenar cadenas - 2

Conclusión

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.






Agregar comentario
1500
¿Cuanto es 5 + 3?
Comentarios
(0)
No hay comentarios todavía ¡Sé el primero en comentar!

©2017-2020 Solución Ingenieril. Todos los derechos reservados