Palindrome 2

rhumsek Messages postés 17 Date d'inscription lundi 3 février 2003 Statut Membre Dernière intervention 5 novembre 2011 - 27 févr. 2003 à 23:14
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 28 févr. 2003 à 16:03
/*Ecrire de deux façons différentes, un programme qui vérifie sans utiliser une
> fonction de <string>, si une chaîne CH introduite au clavier est un palindrome:
>
>
> en utilisant des pointeurs au lieu des indices numériques
>
> Rappel: Un palindrome est un mot qui reste le même qu'on le lise de gauche à
> droite ou de droite à gauche:
>
> Exemples:
>
> PIERRE
> ==>
> n'est pas un palindrome
>
>
> OTTO
> ==>
> est un palindrome
>
>
> 23432
> ==>
> est un palindrome */
>
>
> #include<stdio.h>
> #include<conio.h>
> #define M 5
>
> main()
> {
> char stock;
> char CH[M],CH1[M];
> char *PA,*PB;
>
> /*saisie du mot*/
> printf("entrez votre mot, il ne doit pas le dépassé de %2d caractère \n",M);
> scanf("%s",&CH);
>
> /*inversion du mot saisie*/
> CH1=CH;
> for(PA=CH1,PB=CH1+M;PA<CH1+M;PA++,PB--)
> {
> stock=*PA;
> *PA=*PB;
> *PB=stock;
> }
> CH1=CH;
> getch();
> printf("voici votre mot inversé:%s\n",CH1);
>
> /*test d'égalité*/
> if (CH1[M]==CH[M]) printf("%s est un palindrome\n",CH);
> else printf("%s n'est pas un palindrome\n",CH);
> getch();
>
> }
>
> MON PROG NE FONCTIONNE PAS POURQUOI?POUVEZ VOUS LE CORRIGEZ??

2 réponses

cedb002 Messages postés 151 Date d'inscription jeudi 27 février 2003 Statut Membre Dernière intervention 15 juin 2003 1
28 févr. 2003 à 10:49
Il y a des fonctions pour comparer les chaines dans le string.h parce que == c'est tendu
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
28 févr. 2003 à 16:03
int Palindrome(char *c)
{
char *z = c;
while(*z) z++;
if(--z <= c) return 1;
while(c < z) {
if(*c != *z) return 0;
c++; z--;
}
return 1;
}

BruNews, ciao...
0
Rejoignez-nous