我试图生成单词fun的所有子字符串。在C++中生成子字符串
但它打印“联合国”两次,我不知道为什么。
int c, i;
string s = "fun";
for (c = 0; c < s.length(); c++)
{
for (i = c+1; i <= s.length(); i++)
{
string d = s.substr(c, i);
cout << d << endl;
}
}
这听起来像你可能需要学习如何使用调试器来遍历你的代码。使用一个好的调试器,您可以逐行执行您的程序,并查看它与您期望的偏离的位置。如果你打算做任何编程,这是一个重要的工具。进一步阅读:** [如何调试小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** –
再次查看['' substr'](http://en.cppreference.com/w/cpp/string/basic_string/substr)。第二个参数是* length *,而不是结束索引之后。 – jaggedSpire
如果您使用C++而不是C,则应尽可能在最有限的范围内声明变量。 – Slava