Comment comparer deux chaînes dans le langage de programmation C

Auteur: William Ramirez
Date De Création: 18 Septembre 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
#20 Langage C -Les Chaines de Caractères- string.h
Vidéo: #20 Langage C -Les Chaines de Caractères- string.h

Contenu

Il est assez courant dans le code C de comparer les longueurs de chaînes pour savoir quelle chaîne contient le plus de caractères. Ceci est utile pour trier les données. Une fonction spéciale est nécessaire pour comparer les chaînes - n'utilisez pas != ou alors ==.

Pas

  1. 1 Le langage de programmation C comprend deux fonctions que vous pouvez utiliser pour comparer les longueurs de chaînes. Ces deux fonctions sont incluses dans la bibliothèque chaîne.h>.
    • strcmp () - cette fonction compare deux chaînes et renvoie la différence du nombre de caractères.
    • strncmp () - cette fonction est la même que strcmp () sauf que le premier m personnages. Il est considéré comme plus sécurisé car il évite les échecs de débordement.
  2. 2 Démarrez le programme avec les bibliothèques requises. Vous aurez besoin de bibliothèques stdio.h> et chaîne.h>ainsi que toutes les autres bibliothèques requises pour votre programme spécifique.

    #include stdio.h> #include chaîne.h>

  3. 3 Entrer la fonction entier. Il renvoie un entier à la suite de la comparaison de la longueur de deux chaînes.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Identifiez les deux chaînes que vous souhaitez comparer. Dans notre exemple, comparons deux chaînes de type carboniser... Définissez également la valeur de retour sous forme d'entier.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; }

  5. 5 Entrez une fonction de comparaison. Dans notre exemple, nous utiliserons la fonction strncmp ()... Vous devez y définir le nombre de caractères mesurés.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); / * Compare deux chaînes jusqu'à 8 caractères * /}

  6. 6 Saisir une instruction conditionnelle Si... Autre. Il est nécessaire de montrer quelle ligne est la plus longue. Une fonction strncmp () retournera le numéro 0si les longueurs des chaînes sont les mêmes, un nombre positif si str1 est plus long et un nombre négatif si str2 est plus long.

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; char * str2 = "orange"; int ret; ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("str1 est plus long"); } else if (ret 0) {printf ("str2 est plus long"); } else {printf ("Les longueurs de ligne sont égales"); } retour (0); }

Avertissements

  • N'oubliez pas que si les longueurs des chaînes sont égales, la valeur sera renvoyée 0. Cela peut prêter à confusion car 0 est également FAUX.