Bonjour ! Dans la leçon précédente, nous avons appris à parcourir un tableau de nombres pour y trouver les valeurs minimale et maximale. Nous avons vu l'importance d'initialiser nos variables de comparaison et de parcourir chaque élément pour mettre à jour notre résultat. Cette logique de parcours est un outil puissant que nous allons maintenant appliquer à un autre type de données très courant.
Introduction
Cette leçon est consacrée à la manipulation des chaînes de caractères. L'objectif est de vous apprendre à les considérer et à les utiliser comme des tableaux de caractères. À la fin de cette session, vous saurez comment extraire des informations clés d'une chaîne, comme sa longueur et un caractère situé à une position (index) précise.
Cette compétence est la pierre angulaire du traitement de texte en programmation. Presque toutes les applications, qu'il s'agisse de sites web, de logiciels ou de jeux, ont besoin de manipuler du texte. Comprendre comment "démonter" une chaîne de caractères pour l'analyser est donc une étape essentielle dans votre parcours vers la maîtrise de l'algorithmique.
1. Une chaîne de caractères : un tableau déguisé
En algorithmique, une chaîne de caractères n'est rien de plus qu'une séquence ordonnée de caractères. Le mot "ordonnée" est ici crucial : chaque caractère a une place bien définie. Cette structure est en tout point similaire à celle d'un tableau.
Pour bien comprendre cette analogie, je vous propose de lire la définition suivante.
[PDF] Les chaines de caractères
Ce document définit formellement ce qu'est une chaîne de caractères et établit un parallèle direct avec les tableaux.
Concentrez-vous sur la diapositive 2, intitulée 'Définition'. L'élément le plus important à retenir est la phrase : 'Le rang d'un caractère est à la chaîne ce que l'indice d'un élément est au tableau.'
Pour visualiser cette idée concrètement, observez l'image ci-dessous. Elle montre comment le mot "bonjour!" serait stocké en mémoire.

Une note importante sur l'indexation :
Comme vous le voyez sur l'image, et comme nous l'avons fait pour les tableaux dans les leçons précédentes, les index commencent à 0. C'est la convention utilisée par la majorité des langages de programmation, y compris Java. Dans certains supports de cours d'algorithmique (comme le PDF que vous venez de lire qui parle de "rang 1"), vous pourriez voir une indexation qui commence à 1. Pour préparer au mieux votre apprentissage de Java, nous utiliserons systématiquement l'indexation à partir de 0.
Donc, pour une chaîne ch = "SALUT", on a :
ch[0]est 'S'ch[1]est 'A'ch[2]est 'L'ch[3]est 'U'ch[4]est 'T'
2. Les deux opérations fondamentales
Pour manipuler une chaîne comme un tableau, deux opérations sont indispensables.
A. Obtenir la longueur de la chaîne
Avant de parcourir une chaîne, il faut savoir où s'arrêter. C'est le rôle de la fonction "longueur". En pseudo-code, on la note souvent Longueur(ma_chaine), long(ma_chaine) ou Taille(ma_chaine). Elles désignent toutes la même chose : le nombre total de caractères dans la chaîne.
Longueur("SALUT")renvoie5.Longueur("bonjour!")renvoie8.Longueur("")(une chaîne vide) renvoie0.
B. Accéder à un caractère par son index
Une fois qu'on connaît la longueur, on peut accéder à n'importe quel caractère si on connaît sa position (son index). On utilise pour cela la notation avec les crochets, exactement comme pour les tableaux.
[PDF] Les chaines de caractères
Ce document montre la syntaxe exacte pour accéder à un caractère dans une chaîne.
Repérez la section intitulée 'Accès à un caractère dans une chaîne'. L'exemple c ← chn[7] illustre parfaitement cette opération. Gardez en tête notre convention : comme nous commençons à l'index 0, le 7ème caractère se trouve en réalité à l'index 6.
Ainsi, si ma_chaine ← "ALGORITHME", alors :
ma_chaine[0]nous donne le caractère'A'.ma_chaine[3]nous donne le caractère'O'.ma_chaine[9]nous donne le caractère'E'.
L'index du dernier caractère est toujours Longueur(ma_chaine) - 1. Essayer d'accéder à ma_chaine[10] provoquerait une erreur, car cet index est en dehors des limites de la chaîne.
3. Parcours d'une chaîne : mise en pratique
Maintenant, combinons ces deux opérations. La manière la plus courante d'analyser une chaîne est de la parcourir du début à la fin à l'aide d'une boucle Pour, en accédant à chaque caractère un par un.
Le modèle est le suivant :
chaine_a_traiter ← "un texte"
taille ← Longueur(chaine_a_traiter)
Pour i allant de 0 à taille - 1 Faire
caractere_courant ← chaine_a_traiter[i]
// ... faire un traitement avec caractere_courant ...
FinPour
L'exercice corrigé suivant utilise exactement cette logique pour déterminer la présence d'un caractère dans une chaîne.
[PDF] Exercices avec Solutions
Cet exercice est un exemple parfait de l'utilisation de la longueur et de l'accès par index pour résoudre un problème simple.
Trouvez la section intitulée 'Les Tableaux (Vecteurs – Matrices) et Chaines de caractères', puis allez à l'EXERCICE 10. Concentrez-vous sur la première question et sa solution, la 'Fonction Presence'. Analysez comment elle utilise Taille(CH) pour obtenir la longueur, puis comment elle parcourt la chaîne avec une boucle TantQue et vérifie chaque CH[I]. Notez que cet exemple utilise une boucle TantQue et un index qui commence à 1, mais la logique fondamentale de parcours et d'accès reste identique.
4. À vous de jouer !
Votre préférence pour la pratique est une excellente habitude. Mettons donc en application ce que nous venons de voir.
Problème : Compteur d'occurrences
Écrivez un algorithme nommé CompterCaractere qui :
- Prend en entrée une chaîne de caractères (par exemple, "ALGORITHMIQUE ET PROGRAMMATION") et un caractère à rechercher (par exemple, 'A').
- Compte combien de fois ce caractère apparaît dans la chaîne.
- Affiche le résultat sous une forme claire, par exemple : "Le caractère 'A' apparaît 3 fois."
Conseils :
- Vous aurez besoin d'une variable pour la chaîne, une pour le caractère, et une variable "compteur" initialisée à 0.
- Utilisez une boucle
Pourpour parcourir la chaîne de l'index0àLongueur(...) - 1. - À l'intérieur de la boucle, une structure
Sivous permettra de comparer le caractère courant avec celui que vous recherchez.
Prenez le temps de rédiger votre solution sur papier.
Cliquez ici pour voir une solution possible
Algorithme CompterCaractere
Variables
texte : Chaîne
lettre_a_chercher : Caractère
compteur : Entier
taille : Entier
i : Entier
Début
// Initialisation des données d'entrée
texte ← "ALGORITHMIQUE ET PROGRAMMATION"
lettre_a_chercher ← 'A'
// Initialisation du compteur
compteur ← 0
// Récupération de la longueur de la chaîne
taille ← Longueur(texte)
// Parcours de la chaîne
Pour i allant de 0 à taille - 1 Faire
// Comparaison du caractère courant
Si texte[i] = lettre_a_chercher Alors
// Incrémentation du compteur si correspondance
compteur ← compteur + 1
FinSi
FinPour
// Affichage du résultat final
Ecrire("Le caractère '", lettre_a_chercher, "' apparaît ", compteur, " fois.")
Fin
Conclusion
Félicitations ! Vous avez fait un grand pas en avant. En comprenant qu'une chaîne de caractères n'est qu'un tableau de caractères, vous avez débloqué la capacité d'analyser et de traiter du texte, une compétence fondamentale en programmation.
Les points clés à retenir sont :
- Une chaîne est une séquence ordonnée de caractères, tout comme un tableau est une séquence ordonnée d'éléments.
- L'opération
Longueur(chaine)(ouTaille) est essentielle pour connaître le nombre de caractères. - La notation
chaine[i]permet d'accéder au caractère à l'indexi, en commençant à0. - Le parcours d'une chaîne se fait typiquement avec une boucle
Pourde0àLongueur(chaine) - 1.
Et après ?
Maintenant que nous savons lire et analyser les caractères d'une chaîne existante, la prochaine étape logique est d'apprendre à en construire de nouvelles. Dans la prochaine leçon, nous aborderons la concaténation, c'est-à-dire l'art d'assembler des caractères ou d'autres chaînes pour en former une nouvelle. Cela nous permettra de passer de la simple analyse à la transformation de texte.