我正在編寫一個遞歸函數來查找 C++ 中字符串的長度。這是一個簡單的問題,我用 C++ 寫了兩個函數,用 Python 寫了一個。第一的int length(char *str) { if (*str == '\0') return 0; return 1 + length(str + 1);}第二int get_size(string str, int i) {if (str[i] == '\0') return 0;return 1 + get_size(str, i + 1);}Pythondef length(string): if not string: return 0 return 1 + length(string[1:])他們都工作正常。但是,我想要的是重寫第二個函數,這樣就不需要integer像第一個那樣的參數。除了類實例之外,我也不想使用變量static和global任何庫函數。string如何將第二個函數重寫為第一個函數?
1 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
相當于 python 的 C++string[1:]
是std::string::substr
:
int get_size(std::string str) {
? ? if (str.empty()) // end of recursion
? ? ? ? return 0;
? ? // call recursively with substr from second to last character.
? ? return 1 + get_size(str.substr(1));?
}
添加回答
舉報
0/150
提交
取消