strcat() frente a strncat() en C++

strcat()

La función strcat() agregará una copia de la string de origen al final de la string de destino. La función strcat() toma dos argumentos: 
1) dest 
2) src 
Agregará una copia de la string de origen en la string de destino. El carácter de terminación al final de dest se reemplaza por el primer carácter de src.  
Valor devuelto: la función strcat() devuelve dest, el puntero a la string de destino. 
 

CPP

// CPP program to demonstrate
// strcat
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
    char dest[50] = "This is an";
    char src[50] = " example";
 
    strcat(dest, src);
    cout << dest ;
    return 0;
}

Producción:

This is an example

strncat()

La función strncat() en C++ agrega el número dado de caracteres de una string al final de otra string. La función strncat() tomará estos tres argumentos: 
1) Dest 
2) Src 
3) Count
Esto agregará el número dado de caracteres desde la string src hasta el final de la string dest. El carácter de terminación al final de la string dest será reemplazado por el primer carácter de la string src. 
Valor devuelto: la función strncat() devuelve dest, el puntero a la string de destino. 
 

CPP

// CPP program to demonstrate
// strncat
#include <cstring>
#include <iostream>
 
using namespace std;
 
int main()
{
    char dest[25] = "This is an example";
    char src[50] = " to show working of strncat() this is not added";
     
strncat(dest, src, 29);
    cout << dest ;
    return 0;
 
}

Producción: 

This is an example to show working of strncat()

¿En qué se diferencia strncat() de strcat() ?

Muchos de los programadores recomiendan que strncat() es seguro en comparación con strcat() porque strcat() no verifica el tamaño de los datos copiados y copia hasta que llega a un terminador nulo, lo que podría causar un búfer. desbordamiento mientras que strncat() verifica el tamaño de los datos copiados, y copiará solo ‘n’ bytes.
 

CPP

// C,C++ program demonstrate difference between
// strncat() and strcat()
#include <stdio.h>
#include <string.h>
 
int main()
{
   
   // Take any two strings
   char src[50] = "forgeeks";
   char dest1[50] = "geeks";
   char dest2[50] = "geeks";
  
   printf("Before strcat() function execution, ");
   printf("destination string : %s\n", dest1);
    
   // Appends the entire string of src to dest1
   strcat(dest1, src);
  
   // Prints the string
   printf("After strcat() function execution, ");
   printf("destination string : %s\n", dest1);
  
   printf("Before strncat() function execution, ");
   printf("destination string : %s\n", dest2);
    
   // Appends 3 characters from src to dest2
   strncat(dest2, src, 3);
     
   // Prints the string
   printf("After strncat() function execution, ");
   printf("destination string : %s\n", dest2);
    
   return 0;
}

Producción:  

Before strcat() function execution, destination string : geeks
After strcat() function execution, destination string : geeksforgeeks
Before strncat() function execution, destination string : geeks
After strncat() function execution, destination string : geeksfor

Este artículo es una contribución de Pranav . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *