Comment utiliser la fonction strncpy() en C++

Comment Utiliser La Fonction Strncpy En C



Il existe de nombreuses fonctions en C++ pour copier des chaînes ou des caractères d'un endroit à un autre, qui sont strcpy, strncpy et memcpy. Ils se distinguent les uns des autres par leurs fonctionnalités. Ce tutoriel discutera de la strncpy() fonction en C++.

Qu'est-ce que la fonction strncpy() en C++

La fonction strncpy() est une fonction C++ intégrée qui est utilisée pour copier un nombre fixe de caractères d'une chaîne à une autre. La fonction a besoin de trois paramètres : la chaîne de destination qui contiendra les caractères, la chaîne source qui fournira les caractères et le nombre de caractères à copier. Si la chaîne source est inférieure au nombre de caractères spécifié, la chaîne de destination sera complétée par des caractères nuls jusqu'à la longueur restante.

Le prototype d'une fonction strncpy() est donné ci-dessous.







carboniser * strncpy ( carboniser * mains constante carboniser * src, taille_t compter ) ;

Quels sont les paramètres de C++ strncpy()

Tous les paramètres de strncpy() fonction sont expliquées ci-dessous.



  • main: Un pointeur vers le tableau de destination vers lequel le contenu a été
  • source : Un pointeur vers le tableau source à partir duquel le contenu est
  • compter: Le plus grand nombre de caractères pouvant être copiés de la source vers la destination.

Comment fonctionne la fonction strncpy() en C++

strncpy() fonction accepte trois arguments : destination, src, et compter . Il vérifie si le src chaîne se termine par un caractère nul, et si oui, elle copie le nombre spécifié de caractères à partir du src chaîne à la commencer chaîne. Si le nombre est inférieur à la longueur du src chaîne, les premiers caractères du compte ont été transférés vers commencer chaîne et ne se terminent pas par null. Si le décompte dépasse la longueur de src , tous les caractères de src sont copiés sur commencer , et des caractères nuls de fin supplémentaires ont été inclus jusqu'à ce que tous les caractères de comptage soient écrits.



L'exemple donné illustre le fonctionnement du C++ strncpy() fonction.





#include
#include
en utilisant espace de noms std ;
entier principal ( )
{
carboniser src_str [ ] = 'J'écris un code pour strncpy' ;
carboniser dest_str [ 60 ] ;
strncpy ( chaîne_dest, chaîne_src, tendu ( src_str ) ) ;
écoute << dest_str << ' \n ' ;
retour 0 ;
}

Dans ce programme, nous avons utilisé fichier d'en-tête car il comprend strncpy() fonction. Nous avons défini deux chaînes l'une est src_str et l'autre est dest_str. strncpy() fonction qui prend des données de chaîne src_str et le copie dans le dest_str . Ici strlen(src_str) est utilisé pour compter le nombre total de caractères de la chaîne src_str .

Le sortir du programme peut être présenté ci-dessous.



Quels sont les problèmes liés à l'utilisation de strncpy() en C++

  • S'il n'y a pas de caractère nul dans le tableau de destination ou si la chaîne n'est pas terminée par un caractère nul, notre programme ou code peut rencontrer des problèmes tôt ou tard. Une chaîne non nulle terminée en C++ est devenue un code risqué qui peut se casser à tout moment pendant l'exécution du programme. Cela peut entraîner un défaut de segmentation dans le programme. Par conséquent, strncpy() ne garantit pas que la chaîne de destination se termine toujours par un caractère nul, ce qui en fait un code risqué pour le programme que nous écrivons.
  • Cette fonction ne parvient pas à vérifier le débordement, donc si nous essayons de copier la chaîne source vers une destination dont la taille est inférieure à la source, nous obtenons une erreur et un comportement indéfini.

Conclusion

Pour copier des données d'une chaîne à une autre, nous utilisons strncpy() en C++ qui est une fonction intégrée dans En tête de fichier. Dans cet article, nous avons discuté de la syntaxe et du fonctionnement du C++ strncpy fonction avec un exemple. Nous avons également mis en évidence certains problèmes en raison desquels le strncpy fonction peut rendre notre code risqué.