Tokenisation d'une chaîne est une opération fondamentale en programmation. Cependant, lorsque vous travaillez avec des fonctions C comme strtok(), qui nécessitent une chaîne char*, la tokenisation directe d'un std::string peut être confrontée à des défis.
Pour utiliser strtok() avec un std::string, une option consiste à le convertir en const char* en utilisant .c_str(). Cependant, cela n'est pas toujours souhaitable, car cela fournit une représentation en lecture seule de la chaîne.
Une solution plus appropriée consiste à exploiter std::istringstream au lieu de strtok( ). std::istringstream permet la tokenisation basée sur le flux d'un std::string. Voici un exemple :
#include#include #include int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout Ce code crée un std::istringstream à partir de la std::string et en lit les jetons jusqu'à ce qu'il rencontre le délimiteur spécifié ('-' dans ce cas).
Options supplémentaires
Pour des capacités de tokenisation plus avancées, des bibliothèques comme Boost fournissent des solutions complètes qui offrent une plus grande flexibilité et des fonctionnalités par rapport à strtok().
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3