begin process at 2012 05 30 12:01:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

string de la STL et comparaison de chaines


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

string de la STL et comparaison de chaines

lundi 4 octobre 2004 à 12:01:06 | string de la STL et comparaison de chaines

shenron666

Membre Club
Slt, je cherche un moyen de faire une comparaison de 2 chaines déclarées en string et donc en utilisant la stl seulement il n'y a pas de fonction de comparaison ne respectant pas la casse

comment régler ce problème ?
par dérivation / héritage vers une autre classe ?
utiliser basic_string ou char_traits ?

on m'a dit qu'on pouvait définir la fonction de comparaison utilisée par string mais j'ai beau cherche je ne trouve rien à ce sujet
lundi 4 octobre 2004 à 13:19:23 | Re : string de la STL et comparaison de chaines

leprov

for (string::size_t i (0); i < min (Str1.size(), Str2.size()); ++i)
{
Str1 [i] = toupper (Str1 [i]);
Str2 [i] = toupper (Str2 [i]);
}

bool Comparaison = (Str1 == Str2);


lundi 4 octobre 2004 à 18:29:57 | Re : string de la STL et comparaison de chaines

vecchio56

Administrateur CodeS-SourceS
a ce rythme la autant comparer les caractères 1 par 1, ca évitera de mofier la chaine:


bool equal(const string Str1, const string Str2)
{
int size = min (Str1.size(), Str2.size());
for (string::size_t i = 0; i < size; ++i)
if(toupper (Str1 [i]) != toupper (Str2 [i]))
return false
return true
}
lundi 4 octobre 2004 à 18:36:13 | Re : string de la STL et comparaison de chaines

leprov

effectivement, merci de m'avoir corrigé, c'est vrai que c'etait pas super intelligent...
lundi 4 octobre 2004 à 19:55:32 | Re : string de la STL et comparaison de chaines

steve_clamage

bonjour,

utilisez plutot l'algo std::transform de la stl, et passez toujours std::string par reference

// prototype du model toupper
template <class charT> charT toupper(charT c, const locale &l) const;


template< class charT >
bool equal( const std::basic_string< charT > & s1, const std::basic_string< charT > & s2)
{
std::transform( s1.begin(), s1.end(), s1.begin(), toupper );
std::transform( s2.begin(), s2.end(), s2.begin(), toupper );

return s1 == s2;
}

pour iterer un objet std::string, l'index doit etre du type std::string::size_type

le c++ pour les hommes
http://cpptips.hyperformix.com/
lundi 4 octobre 2004 à 20:01:04 | Re : string de la STL et comparaison de chaines

steve_clamage

Réponse acceptée !
j'ai fais une erreur en modifiant les objets

template< class charT >
bool equal( const std::basic_string< charT > & s1, const std::basic_string< charT > & s2)
{
std::string _s1, _s2;
std::transform( s1.begin(), s1.end(), _s1.begin(), toupper );
std::transform( s2.begin(), s2.end(), _s2.begin(), toupper );

return _s1 == _s2;
}



Cette discussion est classée dans : cherche, string, chaines, comparaison, stl


Répondre à ce message

Sujets en rapport avec ce message

Comparaison de chaine [ par anek971 ] Bonjour a tous,ben enfaite je c ca parait bete mais j'ai un agneda a faire j'arrive a faire tt les fontcions sauf la comparaison de chaines,bah enfait cherche aide operations sur chaines [ par Guidelor ] Bonjour,je cherche un site ou je pourrais trouver de l'aide sur toutes les fonctions pour les operations sur les chaines, specialement pour rechercher String [ par ToToL ] BonjoursJe cherche un moyen rapide de savoir si deux chaine de caractère sont les meme.J'ai essayer le == et ca me renvoi toujours 0 meme quand les ch comparaison de chaines [ par melkiorlenecrarque ] Salut !voici le code:if(DataFichier[i].cFileName != ".")avec:WIN32_FIND_DATA DataFichier[20];quand DataFichier[i].cFileName vaut "." , le if ne passe ahhh ! les chaines de caracteres en c++ !!!! [ par Amanobuo ] Bonjoir !  Savez vous quelle est la differance entre char et char* ? ou String et String*char* est un pointeur sur une chaine, mais quelle est sont in comparaison string [ par darksoul07 ] je cherche à trier une liste de fichier comme sous l'explorateur de vista. je m'expliquela plus part des fonctions trie de manière logique mais moi je Conversions de chaines [ par wismerhill__ ] Bonjour, je n'arrive pas à convertir un type std::string en LPSTR tandis que l'inverse ne pose aucun problème..De même pour un BSTR* la c'est encore p comparaison dans une set [ par MrKro ] Je vous explique,Je dois débugger une application qui gère de très grosse structure de donnéees, des Nodes. Elle utilise des set de la STL afin de les error __declspec(dllimport) lié STL ?? [ par Loki6 ] bonjour tout le monde, alors voilà à la génération de mon projet, étape édition de liens, j'ai une tonne deerror LNK2001: symbole externe non résolu " STL ou Liste chaines [ par Stebo ] Lu,je commence a programmer en C++(experiences de quelques mois) et un moment je pense on est tous passe par les lsite chainés (simple et double chanc


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales