#include <string.h> // <cstring> en C++
char * strncpy( char * destination, const char * source, size_t length ); // Avant C99 char * strncpy( char * restrict destination, const char * restrict source, size_t length ); // A partir de C99
Cette fonction permet de copier le contenu d'une chaîne de caractère dans une autre, dans la limite de length
caractères.
Plusieurs cas peuvent être considérés :
Rappel : en langage C, les chaînes de caractères sont qualifiées d'AZT : A Zéro Terminal. Cela signifie qu'une chaîne de caractères se termine
forcément par un code ASCII nul (pouvant aussi être représenté par '\0'
).
malloc
.
La fonction renvoie l'adresse de la chaîne dupliquée. Attention, elle ne sera pas forcément terminée par un caractère '\0'.
#include <stdio.h> #include <stdlib.h> #include <string.h> define SHORT_LENGTH 10 int main() { const char * longString = "A long message"; char buffer[ SHORT_LENGTH ]; strncpy( buffer, longString, SHORT_LENGTH ); if ( strlen( longString ) >= SHORT_LENGTH ) { puts( "Must add last '\\0' character." ); buffer[ SHORT_LENGTH -1 ] = '\0'; } puts( buffer ); return 0; }
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :