strncpy() : copie partielle d'une chaîne de caractères.
Prototype:
char *strncpy(char *dest, const char *sce, size_t long);
dans: <string.h>
Description:
strncpy() copie jusqu'à 'long' caractères de la chaîne 'sce' vers l'adresse 'dest'.
Soit ls = strlen(sce) :
- si ls<long alors ls caractères sont copiés et long-ls caractères '\0' sont placés ensuite.
- si ls>long alors long caractères sont copiés (pas d'octet '\0' placé dans dest)
Attention: vous devez être sûr que la zone mémoire d'adresse dest est de taille suffisante pour recevoir long caractères.
Valeur renvoyée:
Voir aussi:
Portabilité:
Exemple:
/*
La première utilisation de strncpy() permet de voir que ce sous-programme
ne place pas l'octet '\0' de marque de fin de chaîne si long strlen(sce).
*/
#include
#include
void main(void) {
char string[]= "0123456789";
char *str1 = "bonjour a tous";
char *str2 = "***";
int i;
strncpy( string, str1, 7);
printf("%s\n", string);
string[7] = '\0'; /* string=bon */
printf("%s\n", string);
strncpy( string, str2, 5);
for( i=0; i<10; i++ ) printf( "%4d", string[i] );
printf("\n");
}