bretdu55
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention30 novembre 2011
-
8 nov. 2009 à 14:28
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
9 nov. 2009 à 12:13
Bonjour, voila je doit faire un programme qui vérifie si le mot est un palindrome ou non, et qui retourne un booléen.
Voila mon prog, si quelqu'un peut m'aider, merci
#include
#include <string>
using namespace std;
bool palindrome(string);
int main()
{
string mot;
cout<<"Saisir un mot: ";
cin>>mot;
palindrome(mot);
system("pause");
return 0;
}
bool palindrome(string mot)
{
int s,i,longChaine,position;
string extrait,extrait2;
longChaine=mot.length();
for (i=0;i<=longChaine;i++)
{
extrait=mot.substr(i,1);
}
for (s>=0; s=longChaine; s--)
{
extrait2=mot.substr(s,1);
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 9 nov. 2009 à 12:13
@ed75:
1) C'est du C, pas du C++. Non pas que l'on ne puisse pas mettre du C dans du C++, mais c'est particulièrement inélégant.
2) C'est super pas optimisé ! Tu fais une copie de chaîne, que tu retournes, et enfin tu compares, alors qu'il suffit juste de comparer les caractères un à un. De plus, où est la libération de la chaîne dupliquée ?
3) On lui a donné un exercice, dont le but est de lui faire travailler les boucles et les chaînes de caractères. Avec la solution que tu lui donnes, il ne travail rien du tout. Une simple utilisation de fonction ne saurait remplacer la pratique d'utilisation des boucles.
4) Enfin, d'un point de vue général, donner la solution d'un exercice à un étudiant est particulièrement anti-pédagogique. Mieux vaut lui expliquer l'erreur et l'aider à trouver de lui même.
Pour vérifier si une chaîne est un palindrome, pas besoin de recopier la chaîne à l'envers... Il suffit de vérifier si le caractère en cours et son opposé sont identiques ou non.
Pour chaque caractère si
s[i] == s[taille - 1 - i]
alors
s est un palindrome.
bretdu55
Messages postés14Date d'inscriptionvendredi 22 février 2008StatutMembreDernière intervention30 novembre 2011 8 nov. 2009 à 17:35
Ok merci beaucoup et en C++ ça donne quoi? Je n'ai encore pas vu ce type d'écriture algo. J'ai le droit d'utiliser que 2 fonctions qui sont longueur et extrait.
Vous n’avez pas trouvé la réponse que vous recherchez ?