Avatar ·

如何在C++中将字符串拆分为标记(单词)?详细指南

大家好!我刚开始学习C++,遇到了一个看似简单但找不到合适解决方案的问题。\n\n我需要将字符串拆分为单独的单词(标记)。例如,我有一个字符串"Hello, world! This is C++"。我想得到一个数组或vector:["Hello,", "world!", "This", "is", "C++"]。在Python中,我只需写`"Hello, world! This is C++".split()`就完成了。但在C++中,我没有看到同样简单的方法。\n\n我知道有`std::string`,有`std::stringstream`,但如何从中提取单个单词?我尝试写了类似这样的代码:\n\n```cpp\n#include \n#include \n#include \n#include \n\nint main() {\n std::string str = "Hello, world! This is C++";\n std::stringstream ss(str);\n std::string word;\n std::vector tokens;\n \n while (ss >> word) {\n tokens.push_back(word);\n }\n \n for (const auto& w : tokens) {\n std::cout << w << std::endl;\n }\n