Help string c++
Résolu
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
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
-
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.
-
merci pour ta reponse ,mais que dois-je faire?
merci -
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. -
merci beaucoup pour ta reponse,ca marche tres bien