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 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
Marsh Posté le 03-06-2003 à 12:41:32
++Taz a écrit : 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
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 ?