#include <string.h> char *strcpy(char *dest, const char *src); char *strncpy(char *dest, const char *src, size_t n);
La fonction strncpy() est identique, sauf que seuls les n premiers octets de src sont copiés. Avertissement : s'il n'y a pas d'octet nul dans les n premiers octets de src, la chaîne résultante dans dest ne disposera pas d'octet nul final.
Dans le cas où la longueur de src est inférieure à n, la fin de dest sera remplie avec des octets nuls.
Une implémentation simple de strncpy() pourrait être :
char* strncpy(char *dest, const char *src, size_t n){ size_t i; for (i = 0 ; i < n && src[i] != aq\0aq ; i++) dest[i] = src[i]; for ( ; i < n ; i++) dest[i] = aq\0aq; return dest; }
S'il n'y a pas d'octet nul de terminaison dans les n premiers caractères de src, strncpy() produit dans dest une chaîne sans caractère nul final. Souvent, les programmeurs évitent cette erreur en forçant l'octet final comme suit :
strncpy(buf, str, n); if (n > 0) buf[n - 1]= aq\0aq;
Ce document est une traduction réalisée par Christophe Blaess <http://www.blaess.fr/christophe/> le 9 novembre 1996 et révisée le 17 juillet 2008.
L'équipe de traduction a fait le maximum pour réaliser une adaptation française de qualité. La version anglaise la plus à jour de ce document est toujours consultable via la commande : « LANG=C man 3 strcpy ». N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute erreur dans cette page de manuel.
Dernière mise à jour : 17 juillet 2008