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); } }
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!