Le man de la fonction strncmp
🎯 Comparer deux chaînes sur un nombre limité de caractères.
⚙️ Prototype de strncmp
int strncmp(const char *s1, const char *s2, size_t n);
🧑💻 Fonctionnement de strncmp
La fonction strncmp
compare jusqu’à n
caractères des chaînes s1
et s2
. Contrairement à strcmp
, strncmp
vous permet de limiter le nombre de caractères comparés, ce qui est utile lorsque vous ne souhaitez comparer qu’une portion des chaînes. La comparaison se fait en utilisant les valeurs ASCII des caractères, jusqu’à ce qu’une différence soit trouvée ou que n
caractères aient été comparés.
Paramètres :
- s1 : Pointeur vers la première chaîne de caractères.
- s2 : Pointeur vers la seconde chaîne de caractères.
- n : Nombre maximum de caractères à comparer.
Retour :
- Un entier négatif si s1 est inférieure à s2 dans les n premiers caractères.
- Zéro si les n premiers caractères de s1 et s2 sont égaux.
- Un entier positif si s1 est supérieure à s2 dans les n premiers caractères.
Remarques :
strncmp
est souvent utilisé pour comparer des parties spécifiques de chaînes, par exemple pour vérifier des préfixes ou pour valider que les premiers caractères de deux chaînes correspondent.- Attention : Si
n
est supérieur à la longueur des deux chaînes,strncmp
comparera jusqu’à la fin de la chaîne la plus courte. Si les chaînes sont de longueurs différentes mais commencent par la même séquence, la chaîne la plus courte sera considérée comme inférieure.
✨ Exemple d'utilisation de strcmp
Comparer les préfixes de deux chaînes : ici, strncmp
est utilisé pour vérifier si les 10 premiers caractères des chemins sont identiques, ce qui est utile pour des opérations qui dépendent de la similarité des chemins ou des identifiants partiels.
char path1[] = "/home/user/docs";
char path2[] = "/home/user/music";
if (strncmp(path1, path2, 10) == 0) {
printf("Les 10 premiers caractères des chemins sont identiques.\n");
} else {
printf("Les chemins diffèrent dans les 10 premiers caractères.\n");
}
Voir aussi :
strcmp
: Compare deux chaînes de caractères jusqu’à la première différence ou jusqu’au caractère nul\0
.strcpy
: Copie une chaîne de caractères dans une autre.strncpy
: Copie un nombre limité de caractères d’une chaîne dans une autre.memcmp
: Compare deux zones de mémoire sur un nombre spécifié de bytes.strlen
: Calcule la longueur d’une chaîne de caractères.