a) en utilisant uniquement le formalisme tableau
#include <stdio.h> main() { /* Déclarations */ char CH[101]; /* chaîne donnée */ int I,J; /* indices courants */ int PALI; /* indicateur logique: */ /* vrai si CH est un palindrome */ /* Saisie des données */ printf("Entrez une ligne de texte (max.100 caractères) :\n"); gets(CH); /* Placer J sur la dernière lettre de la chaîne */ for(J=0; CH[J]; J++) ; J--; /* Contrôler si CH est un palindrome */ PALI=1; for (I=0 ; PALI && I<J ; I++,J--) if (CH[I] != CH[J]) PALI=0; /* Affichage du résultat */ if (PALI) printf("La chaîne \"%s\" est un palindrome.\n", CH); else printf("La chaîne \"%s\" n'est pas un palindrome.\n", CH); return 0; }
b) en utilisant des pointeurs au lieu des indices numériques :
#include <stdio.h> main() { /* Déclarations */ char CH[101]; /* chaîne donnée */ char *P1,*P2; /* pointeurs d'aide */ int PALI; /* indicateur logique: */ /* vrai si CH est un palindrome */ /* Saisie des données */ printf("Entrez une ligne de texte (max.100 caractères) :\n"); gets(CH); /* Placer P2 sur la dernière lettre de la chaîne */ for (P2=CH; *P2; P2++) ; P2--; /* Contrôler si CH est un palindrome */ PALI=1; for (P1=CH ; PALI && P1<P2 ; P1++,P2--) if (*P1 != *P2) PALI=0; /* Affichage du résultat */ if (PALI) printf("La chaîne \"%s\" est un palindrome.\n", CH); else printf("La chaîne \"%s\" n'est pas un palindrome.\n", CH); return 0; }