Comparer 1 chaine avec plusieurs autres

hansmeier Messages postés 46 Date d'inscription samedi 29 mai 2004 Statut Membre Dernière intervention 16 août 2006 - 2 août 2005 à 16:00
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009 - 2 août 2005 à 21:49
Bonjour,



stricmp permet de comparer 2 chaines , moi j'aimerais comparer 1 chaine
avec plusieurs d'autres il me parait qu'il y avait une fonction ??





Merci d'avance

3 réponses

BunoCS Messages postés 15356 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 mars 2023 103
2 août 2005 à 16:15
Négatif.

Tu peux faire un tableau de chaines et écrire une fonction qui compare ta chaine avec ton tableau en s'appuyant sur strcmp

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
2 août 2005 à 17:08
if( strcmp(Chaine1,Chaine2) == 0 )

if( strcmp(Chaine2,Chaine3) == 0 )

// Les 3 chaines sont identiques

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
xterminhate Messages postés 371 Date d'inscription dimanche 4 janvier 2004 Statut Membre Dernière intervention 23 septembre 2009
2 août 2005 à 21:49
En C++, je te propose une petite classe (sans doute perfectible) pour
réaliser ta comparaison. Cette classe s'initialise avec une tableau de
chaines (celles pour lesquelles la comparaison rend 'vrai'). Cette
classe s'utilise avec l'opérateur ==.



#include<set>

#include<string>

#include

#include

using namespace std;



// classe de comparaison avec plusieurs chaines

struct multi_string_compare

{

// constructeur

multi_string_compare( char const * liste_chaines[], int const & nombre_chaines ) :

ensemble_chaines( liste_chaines, liste_chaines + nombre_chaines ) {}

// opérateur de comparaison

bool operator==( string const & str ) const

{

return ensemble_chaines.find(str) != ensemble_chaines.end();

}

private:

set<string> ensemble_chaines;

};



int main()

{

int const n = 5;

char const * liste[n] = { "bonjour","au revoir","bonsoir","merci","a bientot"};

multi_string_compare msc( liste, n );

// test #1 -> vrai

cout << boolalpha << ( msc == "bonjour" ) << endl;

// test #2 -> faux

cout << boolalpha << ( msc == "adieu" ) << endl;

}



...


Cordialement,
Xterminhate.
0
Rejoignez-nous