Avatar ·

Comment parcourir les mots d'une chaîne en C++ : analyse des méthodes populaires

Bonjour à tous ! Je suis débutant en C++ et je n'arrive pas à comprendre comment diviser correctement une chaîne en mots individuels et les parcourir en boucle. En Python, cela se fait en une ligne avec `split()`, mais en C++ c'est plus compliqué. J'ai une chaîne de type : `"Привет, как дела? У меня всё хорошо!"` Je dois afficher chaque mot séparément, en ignorant la ponctuation et les espaces. J'ai essayé d'utiliser `std::stringstream`, mais il ne supprime pas les virgules et les points d'interrogation — ils restent collés aux mots. Par exemple, j'obtiens `"Привет,"` au lieu de `"Привет"`. J'ai essayé d'écrire ma propre solution avec une recherche manuelle des espaces via `std::string::find`, mais le code devient énorme et confus. De plus, ma version ne fonctionne pas avec les tabulations et les espaces multiples. Pouvez-vous me dire comment faire cela correctement et proprement ? De préférence en C++ moderne (11/14/17). Donnez un exemple de code qui : 1. Divise la chaîne en mots selon les espaces et la ponctuation. 2. Ignore les espaces supplémentaires et les chaînes vides. 3. Fonctionne.