Cet article explique comment diviser une chaîne en C++ à l'aide d'un délimiteur et construire un vector de strings contenant des strings individuelles.

La bibliothèque standard C++ ne fournissait aucune fonction intégrée pour cette tâche concrète. Cet article donne un aperçu de certaines des alternatives disponibles pour y parvenir.

1. Utilisation find_first_not_of() avec find() fonction

Nous pouvons utiliser une combinaison de strings find_first_not_of() et find() pour diviser une string en C++, comme indiqué ci-dessous :

Télécharger  Exécuter le code

Résultat:

C
C++
Java

2. Utilisation getline() fonction

Une autre bonne alternative est d'utiliser le std::getline fonction, qui extrait les caractères de la istream objet et les stocke dans un flux spécifié jusqu'à ce que le caractère de délimitation soit trouvé.

Télécharger  Exécuter le code

Résultat:

C
C++
Java

3. Utilisation std::regex_token_iterator fonction

Une autre solution consiste à utiliser le std::sregex_token_iterator qui est une spécialisation de std::regex_token_iterator<std::string::const_iterator>

Télécharger  Exécuter le code

Résultat:

C
C++
Java

4. Utilisez std::strtok fonction

Nous pouvons également utiliser le strtok() fonction pour diviser une string en jetons, comme indiqué ci-dessous :

Télécharger  Exécuter le code

Résultat:

C
C++
Java

5. Utilisation std::string::find fonction

Enfin, nous pouvons utiliser std::string::find algorithme avec std::string::substr qui est démontré ci-dessous :

Télécharger  Exécuter le code

Résultat:

C
C++
Java

Il s'agit de diviser une string en C++ à l'aide d'un délimiteur.