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];