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
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;
}
Voilà en faite, c'est cette boucle que je percute pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 while((indice < moitie) && (ch[indice] == ch[taille-indice-1]))
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