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; }
Partager