Bonjour à tous
je dois faire un code qui vérifie si mon texte est un palindrome (phrase qui se lit dans les deux sens : engage le jeu que je le gagne)
j'ai donc fait un code pour saisir, une phrase, ensuite convertit les majuscules en minuscule, supprimer les espaces.
la dernière partie qui compare les lettres ne fonctionne pas.
Si quelqu'un comprend où est le problème, merci de m'aider
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63 #include<stdio.h> #include<stdlib.h> unsigned int longueur_chaine(char *texte); int main() { /*declaration des variables*/ int longueur = 0; char texte[128] = "" ; int i; int j = -1; int palindrome = 0; /*saisie du texte*/ printf("Veuillez saisir une chaine de caractère chaine\n"); if(fgets(texte, 128, stdin)==NULL) { printf("Erreur dans la saisie.\n") ; return EXIT_FAILURE ; } /* conversion des majuscule en minuscule*/ for(i=0;texte[i]!='\0';i++) { if(texte[i]>='A' && texte[i]<='Z') texte[i]=(texte[i]-'A')+'a'; } /*>Supression des espaces*/ for (i = 0; texte[i]; i++) if (texte[i] != ' ') texte[++j] = texte[i]; texte[++j] = '\0'; /*comparaison du texte*/ for (i = 0, j = strlen (texte) - 1; i <= j; i++, j--) { if (texte[i] == texte[j]) palindrome = 1; else { palindrome = 0; break; } } /*resultat*/ if (palindrome == 1) printf ("%s est un palindrome\n", texte); else printf ("%s n'est pas un palindrome\n", texte); printf("%s\n", texte); return 0; }
Partager