C++递归函数来实现统计字符串中第一个空字符前面字符长度
例如:
char buf[]={'a','b','c','d','e','f','\0','x','y','z'};
当输入字符串buff,N=10或者20,期待输出结果是6;当输入N=3或5时,期待输出结果是3或5。
代码实现如下:
#include <iostream>
int mystrlen(char* buf,int N)
{
if(buf[0]==0||N==0) return 0;//空字符串出现返回0
else if(N==1) return 1;
int t=mystrlen(buf,N/2);//折半递归取函数
if(t<N/2) return t;
else//反之取下面一个字符并继续递归
{
return (t+mystrlen(buf+N/2,(N+1)/2));
}
}
int main()
{
char buf[]={'a','b','c','d','e','f','\0','x','y','z'};
int k;
k=mystrlen(buf,20);
std::cout<<k<<std::endl;
return 0;
}
测试结果如下:

本文介绍了一种使用C++递归函数统计字符串中第一个空字符前的字符数量的方法。通过折半递归的方式,提高了函数的效率。示例代码展示了如何针对不同长度的输入字符串,准确获取有效字符数。
553

被折叠的 条评论
为什么被折叠?



