Maison >développement back-end >C++ >Comment puis-je diviser efficacement les chaînes C à l'aide de jetons ?

Comment puis-je diviser efficacement les chaînes C à l'aide de jetons ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-15 02:30:02619parcourir

How Can I Efficiently Split C   Strings Using Tokens?

Diviser efficacement les chaînes C à l'aide de jetons

Pour diviser une chaîne C std::string en sous-chaînes en fonction des jetons spécifiés, il existe plusieurs approches peut envisager. La solution la plus efficace dépend des exigences spécifiques de votre application.

Dans votre cas, où les chaînes sont séparées par ; caractères et que l'utilisation des fonctions de chaîne C et de Boost est restreinte, vous pouvez utiliser la fonction std::getline(). Cette fonction vous permet de lire les données d'un flux dans une chaîne, en vous arrêtant à un délimiteur spécifié.

En suivant cette approche, voici un exemple simple utilisant std::getline() pour diviser votre chaîne en sous-chaînes distinctes et stocker dans un vecteur :

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

using namespace std;

int main() {
    string input = "denmark;sweden;india;us";
    istringstream stream(input);

    vector<string> split_strings;
    string token;

    // Read substrings separated by ';'
    while (getline(stream, token, ';')) {
        cout << token << endl;
        split_strings.push_back(token);
    }
}

Ce code montre comment lire la chaîne caractère par caractère en utilisant std::getline(), la diviser en fonction du ; délimiteur et stocker les sous-chaînes individuelles dans un vecteur.

En utilisant cette approche, vous pouvez diviser efficacement votre chaîne en jetons et effectuer toutes les opérations de traitement ou de stockage nécessaires selon les besoins de votre application.

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