Le man de la fonction strncpy
🎯 Copier d’un nombre limité de caractères d’une chaîne.
⚙️ Prototype de strncpy
char *strncpy(char *dest, const char *src, size_t n);
🧑💻 Fonctionnement de strncpy
strncpy
copie au maximum n
caractères de la chaîne pointée par src
vers dest
. Si la longueur de src
est inférieure à n
, la destination sera remplie avec des caractères nuls (\0
) jusqu’à ce que n
caractères aient été écrits. Contrairement à strcpy
, si la chaîne source est plus longue que n
, le caractère nul de fin \0
ne sera pas ajouté automatiquement à la chaîne destination, ce qui peut entraîner une chaîne de caractères non terminée.
Paramètres :
dest
: Pointeur vers le tableau où la chaîne sera copiée.src
: Pointeur vers la chaîne de caractères à copier.n
: Nombre maximum de caractères à copier.
Retour :
strncpy
retourne un pointeur vers dest
.
Remarques :
strncpy
est souvent utilisé pour copier une portion d’une chaîne, mais vous devez toujours faire attention à ajouter manuellement le caractère nul sin
est inférieur à la longueur desrc
.Attention : Si
n
est supérieur à la longueur desrc
, les caractères supplémentaires dansdest
seront remplis avec des caractères nuls (\0
), ce qui peut être utile pour certaines applications mais peut aussi consommer plus de mémoire.
✨ Exemple d'utilisation de strncpy
Copier une chaîne avec une taille maximale :
char source[] = "42 is awesome";
char destination[20];
strncpy(destination, source, 7);
destination[7] = '\0'; // Assurez-vous que la chaîne est terminée
printf("Destination: %s\n", destination);
Voir aussi :
strcpy
: Copie une chaîne de caractères dans une autre sans limitation de taille.strlen
: Calcule la longueur d’une chaîne de caractères.strcat
: Concatène deux chaînes de caractères.memcmp
: Compare deux zones mémoire, utile pour vérifier les résultats destrncpy
.memcpy
: Copie une zone de mémoire brute, semblable àstrncpy
mais sans arrêt sur un caractère nul.