#01 - Le problème du Palindrome
Énoncé
Écrire un programme qui demande à l'utilisateur de saisir une chaîne de caractère et qui lui indique ensuite si la chaîne de caractère est un palindrome ou non.
Rappel: Un palindrome de lettres est une figure de style désignant un mot ou une phrase dont l'ordre des lettres reste le même qu'on les lise de gauche à droite ou de droite à gauche, comme dans la phrase « Ésope reste ici et se repose » ou encore « La mariée ira mal » à un accent près.
Solution
Nous allons écrire une fonction EstPalindrome
qui prend en entrée une chaîne de caractères et qui évalue s'il s'agit d'un palindrome ou non.
int EstPalindrome(char *chaine)
{
int oui=1, n, i;
n=strlen(chaine);
i=0;
while(oui && i<n)
{
if(*(chaine+i)!=(*(chaine+n-1-i)))
{
oui=0;
}
i++;
}
return oui;
}
Programme complet
// Bibliothèques
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Constantes
#define MAX 100
// Fonctions
void SaisirChaineDeCaracteres(char *chaine)
{
printf(">>>");
scanf("%s", chaine);
}
int EstPalindrome(char *chaine)
{
int oui=1, n, i;
n=strlen(chaine);
i=0;
while(oui && i<n)
{
if(*(chaine+i)!=(*(chaine+n-1-i)))
{
oui=0;
}
i++;
}
return oui;
}
int main()
{
// Prototypes
void SaisirChaineDeCaracteres(char *);
int EstPalindrome(char *);
char motLu[MAX];
printf("Entrer une chaîne de caractère\n");
SaisirChaineDeCaracteres(motLu);
printf("Test Palindrome: %d\n", EstPalindrome(motLu));
return 0;
}