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