Variable de type string en paramètre d'une fonction

sheep70400 Messages postés 5 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 16 novembre 2008 - 16 nov. 2008 à 22:10
sheep70400 Messages postés 5 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 16 novembre 2008 - 16 nov. 2008 à 23:00
Bonsoir à tous et à toutes,

Je voudrais parcourir une chaine de caractère dans une variable de type string dans une fonction qui utilise une pile.
int main()
{
    Pile pilou;
    int longueur,i;
    string phrase;
   //initialise notre pile
    effacer(pilou);
    cout<<"Veuillez saisir une phrase, ce programme va le tester et vous dire si il est palindrome \n";
    cin>>phrase;
    i=0;
    while (phrase[i] != "\0"){
         empiler(pilou,phrase[i]);
          i++;
          }
          afficher(pilou);
    if (palindrome(pilou)){
                           cout<<"Il s'agit bien d'un palindrome"<<endl;
                           }else{
                                 cout<<"Il ne s'agit pas d'un palindrome"<<endl;
                                 }
}

Le compilateur me donne en message d'erreur :
1)
invalide conversion from char to const char après l'appel de la fonction empiler(pilou,phrase[i])
Voici le prototype de ma fonction : void empiler(Pile &pilou, string element)

2)

iso C++ forbids comparison between integer and pointers
Pour cette ligne : while (phrase[i] != "\0"){

J'ai essayé pas mal de choses... Mais après quelques heures d'arrachage de cheveux je me tourne vers la communauté :)

Merci d'avance de votre aide !
sheep

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2008 à 22:30
"aaa" est l'adresse d'une chaine.
'a' est une valeur de caractère.
Pas confondre '' et "".

ciao...
BruNews, MVP VC++
0
sheep70400 Messages postés 5 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 22:41
Salut,

Bien vu pour la deuxième erreur, mais il me reste toujours la première erreur :/

Si quelqu'un a une idée je suis preneur !
merci
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
16 nov. 2008 à 22:57
Normal, le 2eme param est type string, tu envoies un ELEMENT DE la string.

Apprends donc à bosser avec des char[], on utilise des surcouches (string et autres trucs) quand on maitrise bien les concepts du C. Encore que.... on en a justement plus besoin de ces surcouches.

ciao...
BruNews, MVP VC++
0
sheep70400 Messages postés 5 Date d'inscription samedi 9 septembre 2006 Statut Membre Dernière intervention 16 novembre 2008
16 nov. 2008 à 23:00
Donc je reconvertis tout mon programme en char héhé :)

oki ca roule !
0
Rejoignez-nous