Hello tout le monde.
Dans le cadre de ma formation, j'ai un exercice où l'on me demande d'écrire un programme qui teste si la chaîne saisie au clavier par l'utilisateur est un palindrome. De ce point de vue là, grace à mon ami google, j'ai réussi à adapter des sources à ma convenance, le problème, c'est que je percute pas trop le mécanisme de comparaison de caractère.
voici ma source
Voilà en faite, c'est cette boucle que je percute pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #include <stdio.h> #include <string.h> int main(void) { char ch[255]; int indice, taille, moitie; // lecture du ch printf("entrez une chaîne : "); fgets(ch,255,stdin); /* on compare la 1ere lettre avec la derniere, la 2eme avec l'avant derniere, et ainsi de suite jusqu'a ce qu'on atteigne le milieu (fin de la comparaison), ou que les lettres comparees soient differentes (inutile de continuer ce n'est pas un palindrome) */ taille = strlen(ch); moitie = taille / 2; indice = 0; while((indice < moitie) && (ch[indice] == ch[taille-indice-1])) indice++; if(indice == moitie) // si on a atteint le milieu c'est un palindrome printf("%s est un palindrome\n", ch); else // deux lettres n'etaient pas identiques printf("%s n'est pas un palindrome\n", ch); return 0; }
notament ceci (ch[indice] == ch[taille-indice-1]) pourquoi on lui dit -1.Merci de vos réponse. Et puis bonne fête de la musique
Code : Sélectionner tout - Visualiser dans une fenêtre à part while((indice < moitie) && (ch[indice] == ch[taille-indice-1]))
Partager