Salut mon essayer de créer une fonction qui permet à l'utilisateur de savoir si le mot entré est un palindrome (est le même épelé à l'envers, ex: kayak). C'est la fonction que je suis venu avec, mais pour une raison quelconque, la fonction renvoie toujours faux.La fonction Bool retourne toujours false
#include <iostream>
#include <cctype>
using namespace std;
bool compare(string str2)
{
int first = 0, mid, last = (str2.size() - 1);
while(first < last)
{
if(first == last)
{
first++;
last--;
}
else return(false);
}
return(true);
}
int main()
{
string pal;
cout <<"Enter your single word palindrome: ";
getline(cin,pal);
if(compare(pal) == true)cout << pal <<" is a palindrome.\n";
else cout << pal <<" is not a palindrome.\n";
return(0);
}
si (premier == dernier) -> premier et le dernier sont les chiffres d'index, vous devez comparer les caractères –
où vous avez votre boucle while, votre cas est erroné. vous avez besoin de 'str2 [first] == str2 [last]' car vous vérifiez que 'first' est moins que' last', et que 'first' est le même que' last', ce qui ne peut pas être vrai. –
Voulez-vous dire 'str2 [first] == str2 [last]'? – Ben