求字符串长度的三种方法,计数器和指针,sizeof,函数递归

字符串长度为每个字符串最后的默认‘\0’之前的个数。如下调试窗口

有如下的要求,尝试自己写一个strlen函数,此处我们需要写一个my_strlen函数,接下来是三种简单方法。 

int main()
{
	char arr[] = { "abcdef" };
	int len = my_strlen(arr);
	printf("%d", len);
	return 0;
}

第一种,计数器的方法。创建一个计数器,数组名表示首元素地址,从第一个元素开始,每次去找'\n'每次没找到就+1,直到找到‘\0’为止

int my_strlen(char* arr)
{
	int count = 0;
	while (*arr != '\0')
	{
		arr++;
		count++;
	}
	return count;
}

第二种,用库函数sizeof,但是要注意,用这种方法时‘\0’会被包含进去,需要-1.

#include<string.h>
int len=sizeof(arr)
//当sizeof(数组名)时数组名代表整个数组,而不是首元素地址

第三种,函数递归。

int my_strlen(char* str)
{
	if (*str != '\0')
	{
		return 1 + my_strlen(str + 1);
	}
	else
		return 0;

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值