Date création : 31-12-2007 21:51:05 Date de la dernière modification : 12-01-2008 14:05:52
 Vous êtes dans : Langage C Astuces / Chaînes de caractères
Ennoncé :
Vérifier qu'une suite de caractere constitue un palindrome.
Solution :
#include <stdio.h>
#include<string.h>
int main (int argc, char **argv)
{
char mot[20];
int i, j, palindrome;
palindrome = 0;
printf ("Entrez un mot : ");
scanf ("%s", mot);
for (i = 0, j = strlen (mot) - 1; i <= j; ++i, --j){
if (mot[i] == mot[j])
palindrome = 1;
else {
palindrome = 0;
break;
}
}
if (palindrome == 1)
printf ("%s est un palindrome\n", mot);
else
printf ("%s est n'est pas un palindrome\n", mot);
return 0;
}
|
Explication :Définition Palindrome- Mots, phrase pouvant être lus de droite à gauche et de gauche à droite tout en conservant exactement le même sens.
La boucle for (i = 0, j = strlen (mot) - 1; i <= j; ++i, --j), parcourt la chaîne dans les 2 sens jusqu'au milieu.
La variable i commence au début de la chaîne.
La variable j commence à la fin de la chaîne.
Si le caractère designé par i est égal avec le caractère designé par j alors la condition d'être palindrome est vraie.
Dès qu'un caratère ne correspond pas, la condition d'être palindrome est fausse, et nous sortons de la boucle, la variable palindrome vaut zéro.
Si la boucle arrive à la fin est la variable palindrome vaut 1, donc elle est vraie, alors nous avons un palindrome.
|