我正在编写一个递归函数来查找 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
提交
取消