Chaîne insensible au cas Comparez en C ++

Chaîne insensible au cas Comparez en C ++
La comparaison a été un concept très connu et le plus utilisé dans de nombreux domaines. En ce qui concerne les langages de programmation, nous avons l'habitude de comparer les nombres la plupart du temps. Mais ce n'est pas le cas dans tous les langages de programmation. Certains des langages de programmation comme C ++ nous offrent également la possibilité de comparer les valeurs de type de chaîne. Cela peut être fait en ignorant la sensibilité des caisses de ces chaînes en utilisant certaines méthodes intégrées. Ainsi, dans l'article d'aujourd'hui, nous discuterons de ces méthodes pour faire une comparaison insensible au cas de chaîne en C++. Alors, commençons par ouvrir l'Ubuntu 20.04 Console terminale via "Ctrl + Alt + T".

Exemple 01: Utilisation de la méthode StrcasecMP

Ici, nous avons commencé notre premier exemple en créant un fichier qui doit contenir l'extension C ++. La requête tactile a été utilisée dans ce but spécifique. Après cela, un utilisateur doit ouvrir le fichier nouvellement créé pour y ajouter du code. Un utilisateur peut utiliser n'importe quel éditeur intégré d'Ubuntu 20.04 Comme Vim, Text ou Nano Editor. Ainsi, nous utilisons l'éditeur Nano ici selon notre facilité et notre modification rapide. Ainsi, le mot-clé «nano» est utilisé ici pour ouvrir le «cas.CC ”Fichier dans l'éditeur Nano. Votre fichier sera ouvert dans l'éditeur vide.

Nous avons commencé le code C ++ avec des fichiers d'en-tête uniques et nécessaires. Ces fichiers d'en-tête sont inclus en utilisant le mot-clé «inclure» avec le signe de hachage. Les fichiers d'en-tête incluent l'en-tête de flux «entrée-sortie», l'en-tête «String» et l'en-tête «cString» pour utiliser la méthode strcasecmp () dans le code. L'espace de noms standard est essentiel pour utiliser davantage les clauses COUT et CIN dans le code. La méthode Main () a été en cours avec l'initialisation de deux variables de type de chaîne S1 et S1, avec certaines valeurs de chaîne. Vous pouvez voir que les deux chaînes ont presque les mêmes valeurs avec un peu d'insensibilité à un cas. L'instruction «IF» est utilisée ici pour comparer deux variables de chaîne S1 et S2.

La fonction «strcasecmp ()» a été utilisée dans l'instruction «IF» et prend les deux variables de chaîne S1 et S2 à comparer. Cette fonction ignorera leur cas et vérifiera si les deux chaînes sont appariées ou non en utilisant un seul octet en même temps via la méthode "C_Str ()". Si l'octet de S1 correspond au même octet de place de la chaîne S2, il retournera 0. Dans le dernier, si tous les résultats renvoyés sont égaux à 0, il montre que la chaîne S1 est similaire à S2, ignorant leur cas. Par conséquent, l'instruction «IF» exécutera la première instruction «cout» montrant que les deux chaînes sont appariées. Sinon, l'autre partie de l'instruction «IF» exécutera et affichera que les chaînes ne sont pas adaptées. La clause de retour mettra simplement fin à la méthode principale () ici. Notre programme est terminé ici. Faisons simplement rapidement l'enregistrer avec le raccourci «Ctrl + S» et quitter avec le «Ctrl + X». Il s'agit d'une étape nécessaire avant d'aller à la phase de compilation et d'exécution.

Maintenant que le fichier a été enregistré et que nous sommes de retour au terminal, il est temps de le compiler rapidement. Pour la compilation de tout fichier C ++ dans Ubuntu 20.04, vous avez besoin d'un compilateur "G ++". Si vous n'en avez pas, essayez de l'installer avec le package «APT». Sinon, votre code n'aura pas la façon dont il devrait. Donc, nous avons compilé le «cas.Fichier CC "avec le compilateur" G ++ ", qui a réussi. Après cela, la dernière étape a été l'exécution de ce fichier compilé. Cela a été fait avec l'aide d'un «./un.instruction out. Nous avons le message «Strings Match,» car les cordes S1 et S2 sont égales en comparaison mais différentes dans leur cas.

Exemple 02: Utilisation de la méthode StrncasecMP

Prenons un autre exemple similaire de comparaison de deux chaînes insensibles en cas en C++. Cette fois, nous utiliserons la méthode «strncasecmp ()» au lieu de la fonction similaire «strcasecmp ()». Les deux fonctionnent assez également, mais la méthode «strncasecmp ()» fonctionne un peu différemment. Cette fonction prend 3 arguments tandis que la méthode «strcasecmp ()» prend 2 comme nous l'avons fait dans le premier exemple. Le code est similaire au premier exemple de code avec un changement mineur à deux positions. Le premier changement a été effectué dans la valeur de la deuxième corde S2, où nous venons de modifier la position d'un contenu de chaîne selon notre souhait. Le deuxième changement a été effectué à l'instruction «IF» où nous avons ajouté le troisième paramètre dans la méthode de la fonction «strncasecmp ()». Ce paramètre prend une valeur entière pour spécifier le nombre de caractères des deux chaînes à correspondre ou à comparer, je.e., Premier 5. Cela signifie que seuls les 5 premiers caractères des deux chaînes seront comparés, et le résultat sera généré selon cela.

Si la comparaison a réussi et que les deux chaînes ont obtenu les mêmes personnages en ignorant leur sensibilité à la caisse, il reviendra 0 et la première instruction COUT sera exécutée. Sinon, la prochaine clause COUT sera exécutée. Enregistrons simplement avec le raccourci «Ctrl + S» et quittez le fichier avec «Ctrl + X» pour revenir au terminal. Maintenant, c'est notre tour pour la compilation.

Après la compilation, la commande d'exécution montre que les chaînes ne sont pas appariées car les 5 premiers caractères des deux chaînes sont différents.

Exemple 03: Utilisation de la méthode compare ()

Ayons notre dernière mais non la moindre méthode pour comparer deux cordes insensibles à deux cas en C++. Le code a été démarré avec les fichiers d'en-tête, je.e., iostream et algorithme. L'iOStream est utilisé pour le flux d'entrée-sortie, mais l'en-tête «algorithme» est utilisé pour utiliser correctement la méthode compare () et transform () dans le code. Après les en-têtes, «l'espace de noms» standard est utilisé comme nécessaire pour l'utilisation des clauses «cout» et «cin» pour afficher et obtenir l'entrée. Ensuite, nous avons commencé notre fonction principale () du type de retour entier. Il initialise deux variables de type chaîne S1 et S2. Les deux chaînes contiennent certaines valeurs de chaîne avec une sensibilité à la casse différente mais sont similaires dans les caractères.

La méthode «Transform ()» a été appliquée aux deux chaînes, S1 et S2, pour les convertir en supérieur en utilisant la fonction «Toupper ()» du début à la fin. Après conversion, la méthode «compare ()» a été utilisée dans l'instruction «IF» pour vérifier si la chaîne S1 est égale à S2. Si la comparaison de chaque octet de caractère au même endroit des deux cordes retourne 0, cela signifie que les deux sont similaires. Ainsi, il exécutera la première déclaration de «cout» disant que les cordes sont appariées. Sinon, l'instruction «cout» de la partie else sera exécutée, montrant que les chaînes ne sont pas les mêmes. Le code est terminé ici.

Après la compilation et l'exécution du fichier de code, nous avons reçu le message «Strings Matted…». Les deux cordes sont devenues de la même manière après avoir été convertie en supérieur.

Conclusion:

Cet article est à son meilleur pour expliquer le cas compare la chaîne insensible à la langue C ++. Nous avons utilisé les trois fonctions différentes dans nos exemples pour atteindre cette fonctionnalité i.e.strcasecmpMp (), strncasecmp (), transform () et compare (). Tous les exemples sont mis en œuvre sur Ubuntu 20.04 Système et sont également exécutables sur d'autres distributions Linux. Nous espérons que vous trouverez cet article très utile lors de l'apprentissage C++.