Help string c++

Résolu/Fermé
wiam_ Messages postés 169 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 11 août 2013 - 8 mars 2008 à 14:50
wiam_ Messages postés 169 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 11 août 2013 - 8 mars 2008 à 15:38
Bonjour,
je suis entrain de faire une recherche sequentielle ,et j'ai un pbleme,voici une partie de mon programme

int Class::RechercheSequentille() const{

int i=0,ind=-1; string Nom; int encoreAvant; bool trouve=false;

cout<<"Veuillez saisir le nom que vous voulez rechercher\n";
getline(cin,Nom)

do{

trouve=(_tab[i].getNom()== Nom);
i++;
encoreAvant = (strcmp(_tab[i].getNom().c_str , Nom)<0); //la ligne qui contient l'erreur
//getNom() retourne un nom sous forme de string

}while(encoreAvant && i<N);

if (trouve){ ind=i; }

return(ind);

}


l'erreure que j'ai est (no matching function for call to strcmp(<unknown type,std::string&>))
si qql pourrait m'aidez je serais tres reconnaissante
merci

4 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
8 mars 2008 à 15:20
Salutations Wiam,

Le compilo ne trouve pas de fonction strcmp qui prenne comme paramètres les tiens.
Le "unknown type" est bizarre.
Le problème vient du second paramètre: une référence vers un std::string ce qui est en effet le type de Nom

Je te laisse corriger. (Cependant strcmp c'est du C, pas du C++)

M.

PS:
Il existe des balises spécifiques pour insérer du code sur le forum, (à côté du souligner) elles ont l'avantage de garder l'indentation.
0
wiam_ Messages postés 169 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 11 août 2013 8
8 mars 2008 à 15:23
merci pour ta reponse ,mais que dois-je faire?
merci
0
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
8 mars 2008 à 15:28
strcmp(_tab[i].getNom().c_str() , Nom.c_str())

(J'avais pas vu les parenthèses manquantes le premier coup ^^")

OU, à la C++

bool bAvant;

bAvant = ( _tab[i].getNom() < Nom );

^
Vérifie le sens du test que tu souhaites, ici, vrai si ( _tab[i].getNom() ) est avant Nom dans ordre alphabétique

M.
0
wiam_ Messages postés 169 Date d'inscription samedi 1 mars 2008 Statut Membre Dernière intervention 11 août 2013 8
8 mars 2008 à 15:38
merci beaucoup pour ta reponse,ca marche tres bien
0