Aide sur programmation en c :palindrome

jean bat -  
 bobo -
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");
}

2 réponses

Marden Messages postés 1072 Date d'inscription   Statut Membre Dernière intervention   210
 
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
bobo
 
Alors Jean bat, ca y'est ta l'adsl ?
0