Avatar ·

如何在C++中遍历字符串中的单词:字符串分词

大家好!我是C++新手(之前用Python编程),遇到一个看似简单但让我卡住的任务。我需要将字符串拆分成单个单词并循环遍历它们。在Python中,一行代码就能搞定:`for word in sentence.split():`。但在C++中,事情变得复杂得多。 下面是我的任务示例。有一个包含句子的字符串: ```cpp std::string text = "Hello, world! This is a test."; ``` 我需要分别获取每个单词:"Hello,"、"world!"、"This"、"is"、"a"、"test."(或者去掉标点符号——这是细节问题)。我尝试使用`std::stringstream`: ```cpp std::stringstream ss(text); std::string word; while (ss >> word) { std::cout << word << std::endl; } ``` 这有效,但仅当单词由空格分隔时。如果分隔符是其他字符——逗号、句点、制表符——该怎么办?或者如果字符串来自CSV文件?此外,如何正确处理空字符串或连续多个空格的字符串?我听说过pr