Aide sur programmation en c :palindrome

Fermé
jean bat - 14 déc. 2002 à 15:50
 bobo - 15 déc. 2002 à 13:55
g un petit pb ac mon programme palindrome,
rp:un palindrome est un mot qui se lit ds les 2 sens(ex: radar),
mon programme marche pour les mots ms par pour les chaines de mot (pb du au caractere espace,qui est comparer avec le caractere oppose tandis qu'on devrait prendre le carctere suivant espace ou le prcedant)
voici mon algo:
#include<stdio.h>
#include<string.h>

void main()
{
char chaine [50];
int taille,i;

printf("entrer le mot a verifier\t");
gets(chaine);
taille=strlen(chaine);
i=0;

while((chaine[i]==chaine[(taille-1)-i])&&(i<=taille-1))
{
i++;
}

if(i==taille)
{
printf("\nBien vu,cette chaine est un palindrome$$$\n");
}
else
{
printf("\nDesole cette chaine n'est pas un palindrome!!!\n");
}
printf("fin de ce programme\n");
}
A voir également:

2 réponses

Marden Messages postés 1072 Date d'inscription dimanche 11 février 2001 Statut Membre Dernière intervention 29 janvier 2006 208
14 déc. 2002 à 17:17
Bonsoir,
Il y a une autre discussion sur le même sujet postée récemment.
Quelques remarques :
1) - éliminer les "espaces" en tassant les caractères non blancs, qu'il convient de compter. Marquer la fin de chaîne par un "\0" (ici, le test peut être effectué sans sa présence, mais c'est pour prendre de "bonnes" habitudes).
2) - au passage, convertir tout en minuscules ou majuscules.
3) - la comparaison peut s'arrêter au caractère médiant, et si le nombre de caractères est impair, le test du caractère médian est inutile.
3
Alors Jean bat, ca y'est ta l'adsl ?
0