Bonjour � tous,

J'ai un petit souci avec mon code c++, alors voici ce qui m'a �t� demand�:

Ecrire un programme c++ qui permet de d�terminer si une cha�ne de caract�re entr�e par l'utilisateur est un palindrome ou pas. Et par la m�me occasion g�rer les impr�vus dans le cas ou un utilisateur entre des espaces.

Alors moi j'ai pu g�rer le cas o� l'utilisateur entre des espaces, mais par la suite je n'arrive pas � d�terminer si le texte entr� est un palindrome. Voici mon code:

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
30
31
32
33
34
35
36
37
38
39
#include <iostream>
 
using namespace std;
 
int main()
{
   //Déclaration des variables
   int n(0), j(0), i;
   string chaine;
 
   //Saisie de la chaîne
   cout << "Entrer une chaine de caractere: ";
   getline(cin, chaine);
 
   //Détermination du nombre de caractères du texte saisi
   n = chaine.size();
 
   //Gestion des espaces entrées par l'utilisateur
   for(i=0; i < n; i++)
    if(chaine[i] != ' ')
        chaine[j++] = chaine[i];
    chaine[j++] = '\0';
 
 
 
   i = 0,j = n - 1;
   /*Boucle permettant de comparer un à un les caractères.
      Elle compare les caractères en commençant par les extrémités jusqu'au milieu.*/ 
   while(i < j && chaine[i] == chaine[j]){
    i++,j--;
   }
 
   if(i >= j)
    cout << chaine << " est un palindrome" << endl;
   else
    cout << chaine << " n'est pas un palindrome" << endl;
 
  return 0;
}