La fonction
strcat()
ajoute la chaîne
src
à la fin de la chaîne
dest
en écrasant le caractère nul (« \0 ») à la fin de
dest,
puis en ajoutant un nouveau caractère nul final.
Les chaînes ne doivent pas se chevaucher, et la chaîne
dest
doit être assez grande pour accueillir le résultat.
La fonction
strncat()
est identique, à la différence que
- *
-
elle utilise au plus les
n
premiers caractères de
src ;
et
- *
-
src
n'a pas besoin de caractère nul final si elle contient
n
caractères ou plus.
Comme avec
strcat(),
la chaîne résultante dans
dest
est toujours terminée par un caractère nul.
Si
src
contient
n
caractères ou plus,
strcat()
écrit
n+1
caractères dans
dest
(n
de
src
plus le caractère nul final).
Aussi, la taille de
dest
doit être au moins
strlen(dest)+n+1.
Une implémentation simple de
strncat()
pourrait être :
char*
strncat(char *dest, const char *src, size_t n)
{
size_t dest_len = strlen(dest);
size_t i;
for (i = 0 ; i < n && src[i] != '\0' ; i++)
dest[dest_len + i] = src[i];
dest[dest_len + i] = '\0';
return dest;
}