编写函数,不允许创建临时变量,求字符串长度

眉间皱痕 提交于 2020-02-12 14:33:55

编写函数,不允许创建临时变量,求字符串长度

笔记:strlen以\0为结束标志,但是不算\0
方法一:

//my_strlen("abc")
//1+my_strlen("bc")
//1+1+my_strlen("c")
//1+1+1+my_strlen("")
//1+1+1+0=3
int my_strlen(char* str)//数组的第一个字符是整个数组的首地址,所以用指针
{
	if (*str = '\0')
	{
		return 0;
	}
	else
	{
		return 1 + my_strlen(str+1);//str存放a的地址,+1存放的是b的地址
	}
}
int main()
{
	char arr[] = "asdgvg";
	int len = my_strlen(arr);
	printf("%d ", len);
	return 0;
}

方法二:

#include<stdio.h>
#include<string.h>
int my_strlen(char* str)//数组的第一个字符是整个数组的首地址,所以用指针
{
	int count = 0;
	while (*str != '\0')//*str=a
	{
		count++;
		str++;//a的地址
	}
	return count;
}
int main()
{
	char arr[] = "asdgvg";
	int len = my_strlen(arr);
	printf("%d ", len);
	return 0;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!