Comparaison de strings en C++ ?

redpooka Messages postés 55 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 18 mai 2004 - 1 mars 2003 à 10:33
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 ?
A voir également:

5 réponses

cedb002 Messages postés 151 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 15 juin 2003 1
1 mars 2003 à 11:09
Non mais le strcmp il marche en cpp
0
redpooka Messages postés 55 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 18 mai 2004 2
1 mars 2003 à 12:16
Mais le strcmp ne marche pas avec les objets de type string
0
Funto66 Messages postés 1267 Date d'inscription mercredi 1 janvier 2003 Statut Membre Dernière intervention 28 février 2007 4
1 mars 2003 à 14:56
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;
}
0
redpooka Messages postés 55 Date d'inscription mardi 18 février 2003 Statut Membre Dernière intervention 18 mai 2004 2
1 mars 2003 à 16:32
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;
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cedb002 Messages postés 151 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 15 juin 2003 1
2 mars 2003 à 09:48
tu convertit ta string en char *
0
Rejoignez-nous