Help string c++
Résolu
wiam_
Messages postés
188
Statut
Membre
-
wiam_ Messages postés 188 Statut Membre -
wiam_ Messages postés 188 Statut Membre -
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.
-
-
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. -