Maison > développement back-end > C++ > Comment std::getline() peut-il être utilisé pour diviser des chaînes avec des jetons en C ?

Comment std::getline() peut-il être utilisé pour diviser des chaînes avec des jetons en C ?

Linda Hamilton
Libérer: 2024-11-19 11:41:03
original
646 Les gens l'ont consulté

How can std::getline() be used to split strings with tokens in C  ?

Utiliser getline() pour diviser des chaînes avec des jetons

Lorsque vous travaillez avec des chaînes en C, il devient nécessaire de les diviser en segments plus petits en fonction sur des délimiteurs spécifiques. Une méthode courante pour y parvenir consiste à utiliser la fonction std::getline(), qui fournit un moyen flexible d'extraire des sous-chaînes basées sur des délimiteurs tokenisés.

Dans le scénario donné, où nous avons une chaîne composée de mots séparés par des points-virgules, nous pouvons utiliser std::getline() pour diviser efficacement la chaîne en composants individuels. L'extrait de code suivant montre comment implémenter cela :

#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);
    }
}
Copier après la connexion

Dans ce code, nous commençons par créer un vecteur pour stocker les chaînes divisées. Nous passons ensuite la chaîne cible, "denmark;sweden;india;us", dans un objet istringstream, ce qui nous permet de traiter la chaîne comme un flux.

L'opération clé est l'utilisation de getline() pour extraire les sous-chaînes jusqu'à ce que nous atteignions la fin du flux. La fonction getline() prend trois paramètres : le flux d'entrée, une référence à une chaîne pour stocker la sous-chaîne extraite et un caractère délimiteur. Dans ce cas, nous utilisons un point-virgule comme délimiteur pour diviser la chaîne à chaque occurrence.

Dans la boucle, nous récupérons chaque sous-chaîne en appelant getline() et la stockons dans la variable chaîne s. Nous produisons ensuite la sous-chaîne pour confirmation et l'ajoutons au vecteur de chaînes pour un traitement ultérieur.

En suivant cette approche, nous pouvons diviser efficacement une chaîne en fonction de jetons ou de délimiteurs, ce qui facilite la gestion des segments individuels selon les besoins. .

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal