Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 24

Chaînes de caractères : Manipulation de base

Recommended resources

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.

Représentation d'une chaîne de caractères en tant que tableau
Cette image illustre comment la chaîne "bonjour!" est stockée dans un tableau nommé `texte`. Chaque caractère occupe une case identifiée par un index, de 'b' à l'index 0 jusqu'à '!' à l'index 7. Le caractère `\\0` (appelé caractère nul) marque la fin de la chaîne.

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") renvoie 5.
  • Longueur("bonjour!") renvoie 8.
  • Longueur("") (une chaîne vide) renvoie 0.

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 :

  1. Prend en entrée une chaîne de caractères (par exemple, "ALGORITHMIQUE ET PROGRAMMATION") et un caractère à rechercher (par exemple, 'A').
  2. Compte combien de fois ce caractère apparaît dans la chaîne.
  3. 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 Pour pour parcourir la chaîne de l'index 0 à Longueur(...) - 1.
  • À l'intérieur de la boucle, une structure Si vous 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) (ou Taille) est essentielle pour connaître le nombre de caractères.
  • La notation chaine[i] permet d'accéder au caractère à l'index i, en commençant à 0.
  • Le parcours d'une chaîne se fait typiquement avec une boucle Pour de 0 à 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.