Comment fonctionne strlcat ?
La fonction strlcat()
est une fonction que l'on retrouve dans certaines implémentations de la bibliothèque string.h
, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette bibliothèque :
#include <bsd/string.h>
Et compiler avec l'option -lbsd
, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concatène les chaînes dst
et src
, et place le résultat dans la chaîne dst
. Contrairement à la fonction strcat()
, strlcat()
garantie que la longueur totale de la chaîne résultat sera comprise entre la longueur initiale de dst
et size
. Le zéro de fin de chaîne est compatibilisé. Cette fonction sert principalement à éviter les dépassement de taille du tableau de caractères. Considérons les chaînes de caractères suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels à strlcat()
:
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
La fonction strlcat()
est une fonction que l'on retrouve dans certaines implémentations de la bibliothèque string.h
, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette bibliothèque :
#include <bsd/string.h>
Et compiler avec l'option -lbsd
, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concatène les chaînes dst
et src
, et place le résultat dans la chaîne dst
. Contrairement à la fonction strcat()
, strlcat()
garantie que la longueur totale de la chaîne résultat sera comprise entre la longueur initiale de dst
et size
. Le zéro de fin de chaîne est compatibilisé. Cette fonction sert principalement à éviter les dépassement de taille du tableau de caractères. Considérons les chaînes de caractères suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels à strlcat()
:
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
La fonction strlcat() est une fonction que l'on retrouve dans certaines implémentations de la bibliothèque string.h, mais ce n'est pas une fonction standard du C. Pour utiliser cette fonction, il faut inclure cette bibliothèque :
#include <bsd/string.h>
Et compiler avec l'option -lbsd, par exemple :
clang-7 -pthread -lm -lbsd -o main main.c
Voici le prototype :
size_t strlcat( char *dst, const char *src, size_t size);
La fonction concatène les chaînes dst et src, et place le résultat dans la chaîne dst. Contrairement à la fonction strcat(), strlcat() garantie que la longueur totale de la chaîne résultat sera comprise entre la longueur initiale de dst et size. Le zéro de fin de chaîne est compatibilisé. Cette fonction sert principalement à éviter les dépassement de taille du tableau de caractères. Considérons les chaînes de caractères suivantes :
char dst[100] = "1234";
char src[100] = "ABCD";
Voici quelques exemple d'appels à strlcat() :
// Retourne 8
// dst = 1234AB
// src = ABCD
strlcat(dst, src, 7);
// Retourne 6
// dst = 1234
// src = ABCD
strlcat(dst, src, 2)
Vous pouvez tester la fonction en ligne sur repl.it.
# | ID | Query | URL | Count |
---|