class string et comparaison non case-sensitive [STL] - C++ - Programmation
Marsh Posté le 03-06-2003 à 08:11:10
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 : 
 | 
 
(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.
Marsh Posté le 03-06-2003 à 08:25:09
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
Marsh Posté le 03-06-2003 à 08:57:16
| ++Taz a écrit : vous vous foutez de la gueule du monde là! et puis les string C++ peuvent contenir de 0  | 
 
 
D'habitude tes interventions sont bien mais là j'ai du mal à suivre ton raisonement... 
 
Si non  ![[:blueflag] [:blueflag]](https://forum-images.hardware.fr/images/perso/blueflag.gif) le sujet m'intéresse
 le sujet m'intéresse 
Marsh Posté le 03-06-2003 à 12:36:07
  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
 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
Marsh Posté le 03-06-2003 à 12:41:32
| ++Taz a écrit :   | 
 
 
Désolé ça aparaissait pas chez moi, là je suis au boulot et je vois le lien, pardon  
Marsh Posté le 03-06-2003 à 01:37:14
Bon, je sais que pour faire une comparaison entre deux chaines on fait
Mais si je veux faire une comparaison qui tient pas compte de la casse ?
j'ai trouvé ca:
avec un
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 ?