Le langage “C” est l’un des langages de programmation est des langages les plus utilisés au monde. Il est composé de fonctions et de variables qui permettent d’assurer les opérations usuelles. Parmi les fonctions les plus utilisées se trouve la fonction strcmp. Qu’est-ce que c’est ? Comment l’utiliser ? Tous les détails ici.
Présentation de la fonction
Dans le langage de programmation C, la fonction strcmp est l’une des fonctions les plus utilisées pour comparer deux chaînes de caractères. Cette comparaison permet de déterminer laquelle des deux chaînes de caractères est inférieure ou supérieure à la seconde. On peut aussi utiliser strcmp pour vérifier l’égalité entre ces chaînes de caractères.
Pour faire la comparaison, le langage C se base sur l’ordre lexicographique en utilisant les codes du tableau ASCII. Cette fonction qui appartient à la bibliothèque « string. h » de C est très simple à utiliser. Généralement, elle prend deux entrées qui sont des chaînes de caractères et renvoie systématiquement un entier à l’utilisateur. Cette valeur est censée comparer lexicographiquement les deux entrées. Par ailleurs, dans son fonctionnement, la fonction s’avère assez efficace.
En réalité, elle va parcourir chaque caractère qu’on lui aura indiqué en entrée et comparer puis s’arrêter automatiquement dès qu’elle aura trouvé un caractère différent dans les deux chaînes. Cette manière de procéder permet à la fonction de gagner en temps. Très pratique, la fonction peut s’utiliser facilement à condition de savoir l’appeler depuis la bibliothèque classique string. h.
Quels sont les paramètres pris par strcmp ?
Par convention, strcmp prend deux paramètres en entrée. La première est « first » et la deuxième est « seconde ». L’argument first reçoit donc la première chaîne de caractères à comparer et bien évidemment, l’argument second va recevoir la deuxième.
Attention toutefois à respecter certaines spécificités de strcmp. En fait, il est utile de savoir que cette fonction est très sensible à la casse. Autrement, cela signifie qu’un caractère écrit en majuscule n’est pas forcément équivalent à un autre caractère en minuscule.
Par exemple, la fonction strcmp marque une nette différence entre les caractères « Toto » et « toto. Tout cela est dû à l’encodage. C’est-à-dire que la lettre “T” et le caractère “t” ne sont pas codés de la même manière. Alors que la première appartient au code ASCII 84, le caractère “t” appartient en revanche au code ASCII 116. Il en est de même pour les autres caractères, en particulier ceux qui sont écrits avec des caractères accentués.
Comment interpréter les résultats de la fonction strcmp ?
Comme vous le savez, la fonction strcmp prend en entrée deux chaînes de caractères et retourne une valeur numérique. Trois cas sont possibles :
- Le premier cas est celui où les deux chaînes sont égales : dans ce cas précis, la fonction retourne une valeur nulle ;
- Le deuxième cas est celui où la première chaîne de caractère est plus petite que la seconde en considérant l’ordre lexicographique : ce cas précis retourne une valeur négative ;
- Le dernier cas est celui où la chaîne de caractère est plus grande que la seconde : ce dernier cas renvoie une valeur positive.
Pour interpréter, il suffit de mettre en valeur absolue la position du premier caractère. Cela permet de trouver le résultat recherché.
Quelques exemples d’utilisation de la fonction
En guise d’exemple, voici une illustration de la fonction strcmp :
int main () {
char * h1 = “Bienvenue” ;
char * h2 = “Pays” ;
int resultat = strcmp (h1, h2);
if (resultat <0) {
printf (‘%s comes before %s\n’, h1, h2);
} else if (resultat> 0) {
printf (‘%s comes after %s\n’, h1, h2);
} else {
Dans cette portion de codes, on essaie de comparer les chaînes de caractères h1 et h2 en utilisant la fonction strcmp. Le retour sera stocké dans la variable “resultat”. Ensuite, une condition est appliquée pour préciser le message à afficher lorsque “resultat” est inférieur à zéro, supérieur à zéro ou égal à zéro.