我只是尝试测试如何在 C++ 中拆分单词,但遇到了非常未知的错误。这个问题真的让我发疯,我不知道为什么会这样。
这是我的代码:
std::string key = "hello world";
std::string word = "";
for (int i = 0; i < (int)key.length(); i++)
{
if (std::isspace(key[i]) || key[i] == '\0')
{
std::cout << word << "\n";
word.clear();
}
else
word += key[i];
}
结果只是“你好”,我试图调试并弄清楚为什么在isspace
条件之后停止连接这个词?那么有人可以请我指出正确的方向吗?
谢谢
编辑:尝试了以下,现在它到底缺少字母d?
if (std::isspace(key[i]) || key[i + 1] == '\0')
{
编辑2:解决了这个问题:
if (std::isspace(key[i]) || key[i + 1] == '\0')
{
if (key[i + 1] == '\0')
word += key[i];