Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1114 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [STL] class string et comparaison non case-sensitive

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[STL] class string et comparaison non case-sensitive

n°413821
spark
Luc ?
Posté le 03-06-2003 à 01:37:14  profilanswer
 

Bon, je sais que pour faire une comparaison entre deux chaines on fait

Code :
  1. string a = "chaine 1":
  2. string b = "chaine 2";
  3. if(a == b)
  4.   cout << "c'est égal";
  5. else
  6.   cout << "c'est pas égal";


 
Mais si je veux faire une comparaison qui tient pas compte de la casse ?
j'ai trouvé ca:

Code :
  1. transform(a.begin(), a.end(), a.begin(), tolower);

avec un

Code :
  1. #include <algorithm>


Comme ca, je met ma chaine a en minuscules, idem pour la b, et je compare joyeusement.
Le problème: bah ca modifie mes 2 chaines, et je voudrais faire une comparaison sans altérer mes 2 chaines.
 
Une solution ? :D

mood
Publicité
Posté le 03-06-2003 à 01:37:14  profilanswer
 

n°413851
SoWhatIn22
Posté le 03-06-2003 à 08:11:10  profilanswer
 

c'est un problème qui parait simple et qui est pourtant loin de l'être... Il n'y a qu'a voir le nombre d'articles à ce sujet pour comprendre. Une petite recherche sur google s'impose.
 
Si tu n'utilises que que de l'anglais, alors tu peux utiliser une méthode du type:

Code :
  1. strcasecmp(a.c_str(), b.c_str())


(sous win32, la fonction ne s'appelle pas strcasecmp, mais je ne me souviens plus).
Je sais, c'est une fonction C, mais c'est encore ce qu'il y a de plus simple je trouve.
Après, si tu dois pouvoir utiliser d'autres encodages, c'est moins simple.
Tu peux regarder du côté de la fonction template lexicographical_compare qui fait partie de la STL. Regardes aussi ce qui concerne std::locale ainsi que la fonction template std::use_facet.

n°413858
chrisbk
-
Posté le 03-06-2003 à 08:18:34  profilanswer
 

sowhatin22 : stricmp pour la fonction win

n°413865
Taz
bisounours-codeur
Posté le 03-06-2003 à 08:25:09  profilanswer
 

vous vous foutez de la gueule du monde là! et puis les string C++ peuvent contenir de 0
 
 
http://forum.hardware.fr/forum2.ph [...] subcat=386
ma version et celle ce gloop sont tres satisfaisantes

n°413924
LetoII
Le dormeur doit se réveiller
Posté le 03-06-2003 à 08:57:16  profilanswer
 

++Taz a écrit :

vous vous foutez de la gueule du monde là! et puis les string C++ peuvent contenir de 0
 
 
http://forum.hardware.fr/forum2.ph [...] subcat=386
ma version et celle ce gloop sont tres satisfaisantes


 
D'habitude tes interventions sont bien mais là j'ai du mal à suivre ton raisonement...
 
Si non  [:blueflag] le sujet m'intéresse :D


---------------
Le Tyran
n°414239
Taz
bisounours-codeur
Posté le 03-06-2003 à 12:36:07  profilanswer
 

:heink: je comprends pas?  mon lien il est bon? le seul à rajouter, c'est encapsuler cette fonction dans un objet. la solution du transforme marche, mais elle oblige à dupliquer les chaine, ce qui est assez mauvais pour une comparaision rapide

n°414249
LetoII
Le dormeur doit se réveiller
Posté le 03-06-2003 à 12:41:32  profilanswer
 

++Taz a écrit :

:heink: je comprends pas?  mon lien il est bon? le seul à rajouter, c'est encapsuler cette fonction dans un objet. la solution du transforme marche, mais elle oblige à dupliquer les chaine, ce qui est assez mauvais pour une comparaision rapide


 
Désolé ça aparaissait pas chez moi, là je suis au boulot et je vois le lien, pardon  :jap:


Message édité par LetoII le 03-06-2003 à 12:41:50

---------------
Le Tyran

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [STL] class string et comparaison non case-sensitive

 

Sujets relatifs
Class _mthclass$ ????Petit probleme php, histoire de class (objet)....
[STL] list, push_back et ses joyeux amis... Je comprends pas tout[C/C++] fonction sort() avec STL
[RESOLU] kestion a la kon : recherche de String ds un FILE[C/C++] Comparaison de fichier: fread / fgetc
Convertir un stringFreeware donnant class des windows ? (à la spy++)
Comment peux t-on virer une case d'un tableau sur sa/ses valeurs ?string tokenizer
Plus de sujets relatifs à : [STL] class string et comparaison non case-sensitive


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR