Travailler avec les textes
Les textes sont partout : prénoms, messages, mots de passe, phrases à analyser... CoddyRun fournit tout un ensemble de fonctions pour les manipuler.
Une fonction s'écrit avec son nom suivi de parenthèses : on lui donne des valeurs, elle renvoie un résultat.
Longueur et majuscules
mot est un texte vaut 'Programmation'
affiche longueur(mot) // 13
affiche majuscules(mot) // PROGRAMMATION
affiche minuscules(mot) // programmation
affiche majuscule_initiale('léa') // Léa
longueur compte les caractères, espaces compris. Les autres fonctions renvoient un nouveau texte : mot lui-même n'est pas modifié. Pour le changer, il faut ranger le résultat : mot vaut majuscules(mot).
Extraire un morceau
copier(texte, début, longueur) renvoie une partie du texte :
mot est un texte vaut 'Bonjour'
affiche copier(mot, 1, 3) // Bon
affiche copier(mot, 4, 4) // jour
Dans un texte, la première lettre est à la position 1. (Ce n'est pas le cas des tableaux, qui commencent à 0 : on le verra dans le cours suivant.)
Avec une boucle, on peut parcourir un texte lettre par lettre :
mot est un texte vaut 'hibou'
pour i de 1 à longueur(mot)
affiche 'Lettre ' + i + ' : ' + copier(mot, i, 1)
fin pour
Question : Que renvoie copier('CoddyRun', 6, 3) ? — Run. La 6e lettre est le R de Run (C-o-d-d-y-R) ; on en prend 3 : Run.
Chercher dans un texte
phrase est un texte vaut 'Le hibou chasse la nuit'
affiche contient(phrase, 'hibou') // vrai
affiche position('hibou', phrase) // 4
affiche commence_par(phrase, 'Le') // vrai
affiche compter(phrase, 'u') // 2
contient répond vrai ou faux : idéal dans un si.position donne l'endroit où le morceau commence (0 s'il est absent).compter compte combien de fois le morceau apparaît.
Remplacer et découper
phrase est un texte vaut 'J’aime les chats'
affiche remplacer(phrase, 'chats', 'hiboux') // J’aime les hiboux
liste est un tableau
liste vaut decouper('rouge,vert,bleu', ',')
affiche liste[0] // rouge
affiche joindre(liste, ' / ') // rouge / vert / bleu
decouper coupe un texte à chaque séparateur et range les morceaux dans un tableau. joindre fait l'inverse.
Un exemple : le palindrome
Un palindrome se lit pareil dans les deux sens, comme « radar » ou « kayak ». inverser renvoie le texte à l'envers :
mot est un texte
demande 'Un mot ? ' dans mot
mot vaut minuscules(mot)
si mot = inverser(mot) alors
affiche mot + ' est un palindrome !'
sinon
affiche mot + ' n’est pas un palindrome.'
fin si
On passe le mot en minuscules d'abord, pour que « Radar » soit aussi reconnu.
En résumé
longueur, majuscules, minuscules, majuscule_initiale : les bases.copier(texte, début, longueur) extrait un morceau ; la première lettre est à la position 1.contient, position, compter, commence_par cherchent dans un texte.remplacer, decouper, joindre, inverser transforment.- Ces fonctions renvoient un nouveau texte : range le résultat pour garder la modification.