Maison > développement back-end > C++ > Comment diviser une chaîne en jetons en C à l'aide de std::getline() ?

Comment diviser une chaîne en jetons en C à l'aide de std::getline() ?

Barbara Streisand
Libérer: 2024-11-20 16:38:11
original
762 Les gens l'ont consulté

How to Split a String into Tokens in C   Using std::getline()?

Séparation des jetons de chaîne à l'aide de C std::string

Cette question aborde le défi de diviser un C std::string en plusieurs jetons, en particulier en utilisant le délimiteur ";". Bien que certaines solutions suggérées impliquent des bibliothèques externes comme Boost, les directives de ce projet interdisent leur utilisation. Par conséquent, nous explorons une approche plus simple en utilisant la bibliothèque standard C.

Une méthode efficace consiste à utiliser la fonction std::getline(), qui offre une polyvalence dans la spécification des délimiteurs. Dans ce cas, nous pouvons implémenter le processus de tokenisation comme suit :

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

using namespace std;

int main() {
    vector<string> strings; // Vector to store split strings
    istringstream f("denmark;sweden;india;us"); // Input stringstream
    string s; // Variable to store individual strings

    while (getline(f, s, ';')) {
        cout << s << endl; // Display split string
        strings.push_back(s); // Store string in vector
    }
}
Copier après la connexion

Dans cette implémentation, nous créons un flux de chaînes à partir de la chaîne d'entrée "denmark;sweden;india;us". La fonction std::getline() est utilisée pour parcourir le flux de chaînes et récupérer les jetons séparés par le ";" délimiteur. Chaque jeton récupéré est à la fois imprimé et ajouté au vecteur de chaînes pour un traitement ultérieur.

En employant cette approche, nous obtenons la tokenisation souhaitée de la chaîne d'entrée sans recourir à des bibliothèques externes, en respectant les directives spécifiées.

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