温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用C语言strlen函数实现读取字符串长度

发布时间:2022-04-14 10:56:20 来源:亿速云 阅读:201 作者:iii 栏目:开发技术

今天小编给大家分享一下怎么用C语言strlen函数实现读取字符串长度的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1、函数strlen

int main()
{
	char arr[] = "abcd";
	int len = strlen(arr);
	printf("%d\n", len);
	return 0;
}

2、使用指针

字符串以字符 ‘\0’ 结尾,需要创建变量

int my_strlen(char* str)
{
	int count = 0;//统计字符的个数,需要创建变量
	while (*str != '\0')
	{
		count++;
		str++;
	}
	return count;
}
int main()
{
	char arr[] = "abcd";
	//char* str = arr;
	int len = my_strlen(arr);
	printf("%d\n", len);
	return 0;
}

3、指针改进

使用指针,不创建变量,不需要创建变量,面试题级别,要求高,不易掌握

int my_strlen(char* str)
{
	char* p = str;//记录首元素地址的位置
	while (*p != '\0')
	{
		p++;
	}
	return p - str;//尾地址-首地址,就是字符串的长度
}

4、使用递归

递归函数,不需要创建变量,以大化小,进行分解,面试题级别,要求高,不易掌握

my_strlen("abcdef")
1+my_strlen("bcdef")
1+1+my_strlen("cdef")
1+1+1+ my_strlen("def")
1+1+1+1+ my_strlen("ef")
1 + 1 + 1 + 1 +1+my_strlen("f")
1 + 1 + 1 + 1 + 1 + 1+ my_strlen("")
1 + 1 + 1 + 1 + 1 + 1 + 0 = 6

int my_strlen(char* str)
{//不需要创建变量
	if (*str != '\0')
		return 1 + my_strlen(str+1);//递归
	else
		return 0;
}

5、my_strlen函数的参数改进—常量指针

定义常量指针,const 对 *str 的内容进行限制,字符串的内容在传参时不会发生改变,将上面的自定义函数,都换成下面的代码:

int my_strlen(const char* str)//常量指针
{
}

以上就是“怎么用C语言strlen函数实现读取字符串长度”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI