Comment interpréter une chaîne de caractères en C++

Jinku Hu 12 octobre 2023
  1. Utiliser la boucle à base de plage pour itérer une chaîne de caractères en C++
  2. Utiliser la boucle for pour itérer une chaîne de caractères en C++
Comment interpréter une chaîne de caractères en C++

Cet article présente plusieurs méthodes permettant d’itérer une chaîne de caractères tout en conservant le compte de l’index en C++.

Utiliser la boucle à base de plage pour itérer une chaîne de caractères en C++

Le style moderne du langage C++ recommande l’itération basée sur la gamme pour les structures qui la supportent. En attendant, l’index actuel peut être stocké dans une variable séparée de type size_t qui sera incrémentée à chaque itération. Notez que l’incrément est spécifié avec l’opérateur ++ à la fin de la variable, parce que le mettre comme préfixe donnerait un index qui commence par 1. L’exemple suivant ne montre que la partie courte de la sortie du programme.

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  string text = "They talk of days for which they sit and wait";

  size_t index = 0;
  for (char c : text) {
    cout << index++ << " - '" << c << "'" << endl;
  }

  return EXIT_SUCCESS;
}

Production :

0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'

Utiliser la boucle for pour itérer une chaîne de caractères en C++

Il est élégant et puissant dans la boucle for conventionnelle, car il offre une flexibilité lorsque le champ d’application interne implique des opérations de matrice / réseau multidimensionnel. C’est également la syntaxe d’itération préférée lorsque l’on utilise des techniques de parallélisation avancées comme la norme OpenMP.

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  string text = "They talk of days for which they sit and wait";

  for (int i = 0; i < text.length(); ++i) {
    cout << i << " - '" << text[i] << "'" << endl;
  }

  return EXIT_SUCCESS;
}

Production :

0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'

On peut aussi accéder aux caractères individuels de la chaîne avec la fonction membre at().

#include <iostream>
#include <string>

using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
  string text = "They talk of days for which they sit and wait";

  for (int i = 0; i < text.length(); ++i) {
    cout << i << " - '" << text.at(i) << "'" << endl;
  }

  return EXIT_SUCCESS;
}

Production :

0 - 'T'
1 - 'h'
2 - 'e'
...
43 - 'i'
44 - 't'
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Article connexe - C++ String