Comparaison de strings en C++ ?

Signaler
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
-
Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
-
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 ?

5 réponses

Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
1
Non mais le strcmp il marche en cpp
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
2
Mais le strcmp ne marche pas avec les objets de type string
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3
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;
}
Messages postés
55
Date d'inscription
mardi 18 février 2003
Statut
Membre
Dernière intervention
18 mai 2004
2
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;
}
Messages postés
151
Date d'inscription
jeudi 27 février 2003
Statut
Membre
Dernière intervention
15 juin 2003
1
tu convertit ta string en char *