为了账号安全,请及时绑定邮箱和手机立即绑定

在 C++ 中使用递归获取字符串类实例的长度

在 C++ 中使用递归获取字符串类实例的长度

手掌心 2023-06-20 16:38:49
我正在编写一个递归函数来查找 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)); 

}


查看完整回答
反对 回复 2023-06-20
  • 1 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信