Maison  >  Article  >  développement back-end  >  Comment diviser un std::string C à l'aide de jetons (';') ?

Comment diviser un std::string C à l'aide de jetons (';') ?

DDD
DDDoriginal
2024-11-22 19:29:131001parcourir

How to Split a C   std::string Using Tokens (

Diviser C std::string à l'aide de jetons (";")

En supposant que vous ayez une chaîne composée de mots séparés par des points-virgules (";"), vous visez pour diviser cette chaîne en un vecteur de mots séparés.

Pour y parvenir, vous pouvez exploiter la fonction de bibliothèque standard std::getline. Il vous permet de lire les données d'un flux de chaînes, en les traitant comme une séquence de lignes. En définissant un délimiteur, vous pouvez demander à std::getline de diviser la chaîne en sous-chaînes en fonction de ce délimiteur.

Voici un exemple de code montrant comment procéder :

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> strings;
    istringstream f("denmark;sweden;india;us");
    string s;

    while (getline(f, s, ';')) {
        cout << s << endl;
        strings.push_back(s);
    }

    return 0;
}

Dans ce code :

  • Une chaîne vectorielle est créée pour stocker le fractionnement sous-chaînes.
  • Un flux de chaîne f est initialisé avec la chaîne d'entrée contenant les mots séparés par des points-virgules.
  • Dans la boucle while :

    • getline est invoqué avec le délimiteur ';' pour extraire la sous-chaîne suivante du flux de chaînes.
    • La sous-chaîne extraite est imprimée et ajoutée au vecteur de chaînes.

Cette approche fournit une approche simple et moyen efficace de diviser une chaîne à l'aide d'un jeton spécifié, tel que ";".

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn