CoddyRun

Support public · Aide sur un programme

Résolu

Vérifier si une phrase est un palindrome

Ouvert par Chris54 le 7 novembre 2026 · 3 messages · 13 vues

Ce sujet est résolu. Voir la réponse retenue.
Chris54 a ouvert le sujet 7 novembre 2026 à 09h36

Bonjour,

J’aimerais créer un programme qui vérifie si une phrase peut être lue de la même manière de gauche à droite et de droite à gauche.

Par exemple, cette phrase est un palindrome : Ésope reste ici et se repose

Le problème est que la phrase contient des espaces, des majuscules et des lettres accentuées.
Je voudrais donc nettoyer le texte avant de le comparer avec sa version inversée.

Comment créer une fonction qui ignore les espaces, les majuscules et les accents afin de vérifier correctement si une phrase est un palindrome ?

Merci pour votre retour.

Bonjour Chris54,

Tu peux commencer par normaliser la phrase en la mettant en minuscules, puis retirer les espaces et remplacer les caractères accentués. Ensuite, il suffit de comparer le texte obtenu avec sa version inversée.

fonction nettoyerTexte(phrase)
    texteNettoye est un texte
    texteNettoye vaut phrase

    @ Suppression des espaces
    texteNettoye vaut remplacer(texteNettoye, " ", "")

    @ Remplacement des majuscules accentuées
    texteNettoye vaut remplacer(texteNettoye, "É", "E")
    texteNettoye vaut remplacer(texteNettoye, "È", "E")
    texteNettoye vaut remplacer(texteNettoye, "Ê", "E")
    texteNettoye vaut remplacer(texteNettoye, "À", "A")
    texteNettoye vaut remplacer(texteNettoye, "Â", "A")
    texteNettoye vaut remplacer(texteNettoye, "Î", "I")
    texteNettoye vaut remplacer(texteNettoye, "Ï", "I")
    texteNettoye vaut remplacer(texteNettoye, "Ô", "O")
    texteNettoye vaut remplacer(texteNettoye, "Ù", "U")
    texteNettoye vaut remplacer(texteNettoye, "Û", "U")
    texteNettoye vaut remplacer(texteNettoye, "Ç", "C")

    @ Passage en minuscules
    texteNettoye vaut minuscules(texteNettoye)

    @ Remplacement des minuscules accentuées
    texteNettoye vaut remplacer(texteNettoye, "é", "e")
    texteNettoye vaut remplacer(texteNettoye, "è", "e")
    texteNettoye vaut remplacer(texteNettoye, "ê", "e")
    texteNettoye vaut remplacer(texteNettoye, "à", "a")
    texteNettoye vaut remplacer(texteNettoye, "â", "a")
    texteNettoye vaut remplacer(texteNettoye, "î", "i")
    texteNettoye vaut remplacer(texteNettoye, "ï", "i")
    texteNettoye vaut remplacer(texteNettoye, "ô", "o")
    texteNettoye vaut remplacer(texteNettoye, "ù", "u")
    texteNettoye vaut remplacer(texteNettoye, "û", "u")
    texteNettoye vaut remplacer(texteNettoye, "ç", "c")

    retourne texteNettoye
fin fonction

fonction estPalindrome(phrase)
    texteNormalise est un texte
    texteNormalise vaut nettoyerTexte(phrase)

    retourne texteNormalise = inverser(texteNormalise)
fin fonction

@ Programme principal
phraseSaisie est un texte
phraseNettoyee est un texte

demande "Entre une phrase : " dans phraseSaisie

phraseNettoyee vaut nettoyerTexte(phraseSaisie)

affiche "Texte analysé : " + phraseNettoyee
affiche "Texte inversé : " + inverser(phraseNettoyee)

si estPalindrome(phraseSaisie) alors
    affiche "Cette phrase est un palindrome."
sinon
    affiche "Cette phrase n'est pas un palindrome."
fin si

La fonction nettoyerTexte() prépare la phrase pour la comparaison.

Par exemple :

"Ésope reste ici et se repose" -> devient -> "esoperesteicietserepose"

le résultat devient :

Texte analysé : esoperesteicietserepose
Texte inversé : esoperesteicietserepose
Cette phrase est un palindrome.

La fonction estPalindrome() compare ensuite cette version nettoyée avec le même texte écrit à l’envers.

Cette organisation permet de réutiliser facilement la vérification avec plusieurs phrases, sans répéter toutes les opérations de nettoyage.

Apprendre à coder, c'est avant tout apprendre à penser.

La réponse précédente était surtout une solution pédagogique, afin de comprendre les différentes étapes nécessaires pour nettoyer le texte et vérifier manuellement s’il s’agit d’un palindrome.

Pour aller plus vite 🤓, il existe aussi une version simplifiée avec la fonction partagée est_palindrome(phrase)

phrase est un texte
demande "Entre une phrase : " dans phrase

si est_palindrome(phrase) alors
    affiche "Cette phrase est un palindrome."
sinon
    affiche "Cette phrase n'est pas un palindrome."
fin si

La fonction est disponible dans la bibliothèque CoddyRun : https://coddyrun.fr/bibliotheque/voir.php?id=12

Apprendre à coder, c'est avant tout apprendre à penser.
Une question ? Connectez-vous pour ouvrir votre propre sujet : CoddyRun vous répondra. La création d'un compte est gratuite et prend une minute.