Avatar ·

Comment itérer sur les mots d'une chaîne en C++ : analyse d'une chaîne en tokens

Bonjour à tous ! Je suis débutant en C++ (avant j'écrivais en Python) et j'ai rencontré une tâche qui semble élémentaire mais qui me bloque. Je dois diviser une chaîne en mots individuels et les parcourir en boucle. En Python, cela se fait en une seule ligne : `for word in sentence.split():`. Mais en C++, tout s'est avéré plus compliqué. Voici un exemple de mon problème. J'ai une chaîne avec une phrase : ```cpp std::string text = "Hello, world! This is a test."; ``` Je dois obtenir chaque mot séparément : "Hello,", "world!", "This", "is", "a", "test." (ou sans ponctuation — ce sont déjà des détails). J'ai essayé d'utiliser `std::stringstream` : ```cpp std::stringstream ss(text); std::string word; while (ss >> word) { std::cout << word << std::endl; } ``` Cela fonctionne, mais seulement si les mots sont séparés par des espaces. Que faire si les délimiteurs sont autres — virgules, points, tabulations ? Ou si la chaîne provient d'un fichier CSV ? De plus, comment traiter correctement les chaînes vides ou les chaînes avec plusieurs espaces consécutifs ? J'ai entendu parler de