我試圖生成單詞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