Comparaison de strings en C++ ?

Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
- - Dernière réponse : cedb002
Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
- 2 mars 2003 à 09:48
Comment faire en C++ quand on a deux variables de classes strings pour les comparer sans tenir compte des majuscules ?

En C avec les chaines de caractère il y a stricmp.
Qu'a-t-il en C++ avec les strings ?
Afficher la suite 

5 réponses

Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
1
0
Merci
Non mais le strcmp il marche en cpp
Commenter la réponse de cedb002
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
2
0
Merci
Mais le strcmp ne marche pas avec les objets de type string
Commenter la réponse de redpooka
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
0
Merci
Avec le string du C++, plein d'opérateurs sont définis, comme + (pour concaténer), =, et surtout < et > (il doit y en avoir d'autres).
Donc tout ce que tu as à faire c'est, par exemple :

string str1 = "Hello 1";
string str2 = "Hello 2";
if (str1 > str2)
{
cout << str1 + ">" + str2 << endl;
}
else
{
cout << str1 + "<" + str2 << endl;
}
Commenter la réponse de Funto66
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
2
0
Merci
Je sais mais je cherchais une fonction en C++ qui marche comme avec stricmp de C

N'ayant pas eu de réponse j'ai fait cette fonction

bool Comp_Strings(string &String1, string &String2)
{
    if (String1.size() != String2.size()) return 0;  /*Si les deux chaînes ont pas la même longueur on sort tous de suite*/

  char chaine1[String1.size()+1],        /*Il faut penser a mettre un caractère en plus pour celui de fin*/
       chaine2[String2.size()+1];

    for (int i=0; i < String1.size(); i++)        /*On met la premiere string dans la chaine de caractère*/
    {
     chaine1[i]=String1[i];
    }
    chaine1[String1.size()]='\0';

    for (int i=0; i < String2.size(); i++)        /*On met la premiere string dans la chaine de caractère*/
    {
     chaine2[i]=String2[i];
    }
     chaine2[String2.size()]='\0';

    if (stricmp(chaine1,chaine2)==0) return 1;
    else return 0;
}
Commenter la réponse de redpooka
Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
1
0
Merci
tu convertit ta string en char *
Commenter la réponse de cedb002