Maison  >  Article  >  développement back-end  >  Pourquoi pensons-nous que strncpy en C/C++ n'est pas sûr ?

Pourquoi pensons-nous que strncpy en C/C++ n'est pas sûr ?

WBOY
WBOYavant
2023-09-13 09:17:021224parcourir

Pourquoi pensons-nous que strncpy en C/C++ nest pas sûr ?

La fonction strncpy() est utilisée pour copier le nombre spécifié de caractères de la source vers la destination.

Ce qui suit est la syntaxe de strncpy()

char *strncpy( char *destination, char *source, size_t n);

Ici, destination est un pointeur vers le tableau de destination dans lequel la chaîne source sera copiée, source est la chaîne à copier et n est la chaîne à partir de laquelle . Le nombre maximum de caractères à copier. La fonction

strncpy() n'est pas sûre car s'il n'y a pas de caractère NULL dans les n premiers caractères de la chaîne source, la chaîne cible ne se terminera pas par NULL.

Ce qui suit est un programme qui démontre la fonction strncpy() en C++.

Exemple

Démonstration en ligne

#include <iostream>
#include <cstring>
using namespace std;
int main () {
   char source[20] = "This is a string";
   char dest[20];
   strncpy(dest, source, 4);
   cout << "The destination string is: " << dest;
   return 0;
}

Sortie

La sortie du programme ci-dessus est la suivante.

The destination string is: This

Maintenant, comprenons le programme ci-dessus.

La chaîne source contient les données "Ceci est une chaîne". Utilisez ensuite strncpy() pour copier les quatre premiers caractères dans la chaîne cible. Imprimez ensuite le contenu de la chaîne cible. Un extrait de code montrant cela se trouve ci-dessous.

char source[20] = "This is a string";
char dest[20];
strncpy(dest, source, 4);
cout << "The destination string is: " << dest;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer