gpt4 book ai didi

c++ - 为什么该程序返回的是最后一个单词而不是最长的单词?

转载 作者:行者123 更新时间:2023-12-02 10:36:01 25 4
gpt4 key购买 nike

为什么该程序返回垃圾值?我希望输出是单词“large”,但实际值是“rat”-最后一个单词。

#include <iostream>
#include <string>
using namespace std;

std::string LongestWord(std::string sen)
{

std::string s2, lW;
for (int i = 0; i < sen.size(); ++i) {

while (sen[i] != ' ') {
s2 += sen[i];
++i;
}
if (s2.size() > lW.size()) {
lW = ""; lW = s2;
}

s2 = "";
}
return lW;
}
int main(void)
{

cout << LongestWord("a cat ate the large rat") << endl;
return 0;

}

最佳答案

您的内部while循环几乎可以肯定会超出给定string参数的末尾(除非末尾有空格)。更改此内部循环以检查该字符串的大小,如下所示:

        while (i < sen.size() && sen[i] != ' ') {
s2 += sen[i];
++i;
}

关于c++ - 为什么该程序返回的是最后一个单词而不是最长的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60242766/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com