STRCAT |
Concaténation de chaîne de caractères |
---|---|
SVID 3, POSIX, BSD 4.3, ISO 9899 | string.h |
Syntaxe
char *strcat(char *dest, const char *src); |
Paramètres
Nom | Description |
---|---|
dest | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ de base. |
src | Ce paramètre permet d'indiquer la chaîne de caractères ASCIZ à ajouter à la fin de dest. |
Retour
Valeur | Description |
---|---|
pointeur | Ces valeurs permettent d'indiquer un pointeur vers le résultat de la chaîne de caractères dest. |
Description
Cette fonction permet la concaténation de chaînes de caractères.
Remarques
- La fonction strcat() ajoute la chaîne de caractères src à la chaîne de caractères dest, écrasant l'octet nul de fin ('\0') à la fin de dest, puis ajoute un octet nul de fin. Les chaînes ne peuvent pas se chevaucher et la chaîne de caractères dest doit avoir suffisamment d'espace pour le résultat. Si dest n'est pas assez grand, le comportement du programme est imprévisible; les dépassements de tampon sont un moyen préféré pour attaquer les programmes sécurisés.
- La fonction strncat() est similaire, sauf qu'elle utilisera au plus n octets de src; et src n'a pas besoin d'être terminé par null s'il contient n octets ou plus.
- Comme avec strcat(), la chaîne de caractères résultante dans dest est toujours terminée par un null.
- Si src contient n octets ou plus, strncat() écrit n+1 octets dans dest (n de src plus l'octet null de fin). Par conséquent, la taille de dest doit être au moins strlen(dest)+n+1.
- Une mise en oeuvre simple de la fonction strncat() pourrait être faite de la façon suivante :
- Certains systèmes d'exploitations (comme les BSD, Solaris et autres) offrent la fonction alternative suivante :
size_t strlcat(char *dest, const char *src, size_t size); Cette fonction ajoute la chaîne de caractères src terminée par un null à la chaîne de caractères dest, copiant au plus size-strlen(dest)-1 à partir de src, et ajoute un terminateur null au résultat, sauf si la taille est inférieure à strlen(dest). Cette fonction corrige le problème de dépassement de tampon de strcat(), mais l'appelant doit toujours gérer la possibilité de perte de données si la taille est trop petite. La fonction renvoie la longueur de la chaîne de caractères que strlcat() a tenté de créer; si la valeur de retour est supérieure ou égale à size, une perte de données s'est produite. Si la perte de données est importante, l'appelant doit soit vérifier les paramètres avant l'appel, soit tester la valeur de retour de la fonction. La fonction strlcat() n'est pas présent dans la glibc et n'est pas normalisé par POSIX, mais est disponible sous Linux via la bibliothèque libbsd.
Exemple
Voici quelques exemples typiques de l'utilisation de cette fonction :
on obtiendra le résultat suivant :
Gladir.comVoir également
Langage de programmation - C - Référence procédures et fonctions - strcat