C语言strlen的模拟递归和非递归分别实现strlen

首先我们要知道什么是递归  有一个限制条件  达到越来越接近这个限制条件  本质就是实现strlen函数 计算字符串长度 遇到'/0'则是结束的标志 那么这就是限制条件 如若满足此条件 则返回return 0; 要想学好递归  不能从正面角度切入问题 应该从结论出发 找到问题的根本 找到一定的限制条件 递归函数 函数要定义  最好在主函数之前 也可以是主函数以后 由于程序是从上到下的运行顺序  所以要声明 

int strlen1(char str[])//返回类型是int 参数是char str[] 字符
{
	if (str[0] == '\0')//查找结束的标志
	{
		return 0;
	}
	return 1 + strlen1(str + 1); //第一次   a+srelenl(str+1)
	//第二次 a+b+s(str+1)
	//第三次 a+b+c+s(str+1)
	// //第四次 return 0;
}
int main()
{
	char str[] = "abcde";
	printf("%d\n", strlen1(str));
	system("pause");//暂停代码的运行(冻结屏幕)
	return 0;
}

接下来是利用for循环

 

int strlen1(char str[])
{
	int size = 0;
	for (int i = 0; str[i] != '\0'; i++) //循环的判断条件是遇到‘\0’ 结束循环
	{
		size=size+1;
	}
	return size;
}
int main()
{
	char str[] = "abcde";
	printf("%d\n", strlen1(str));
	system("pause");
	return 0;
}

运行结束  感谢大家观看  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值