首先我想說的是,這是一項家庭作業,儘管我並不是要求你爲我做這件事,而是要求我們爲什麼會崩潰。編寫函數subCount()
時出現遞歸問題,該函數需要兩個字符串參數"str"
和"sub"
,並檢查"sub"
在"str"
中出現的次數,返回一個int。你必須使用遞歸。 這裏是我的代碼<string>
和std
命名空間。用字符串遞歸:: find()
int subCount(const string& str, const string& sub)
{
if (str.find(sub != string::npos))
{
return 1 + subCount(str.substr(1, str.length()), sub);
}
else
{
return subCount(str.substr(1, str.length()), sub);
}
}
它建立良好(使用Visual Studio 2012),但試圖運行時崩潰。我懷疑我沒有正確使用find()
函數,但我無法理解cplusplus.com上的參考資料,它對於字符串參數爲"size_t find (const string& str, size_t pos = 0) const noexcept;"
。目前,我對find()
的理解是,如果"sub"
是str
,那麼它返回true,導致return 1 + subCount(str.substr(1), sub);
執行,如果不是,那麼返回其他語句。如果find()
函數沒有問題,請說出來,問題是什麼,而不是如何解決它。感謝您抽出時間來閱讀。
非常感謝,程序現在正在運行。 – Mozzarella