C语言|模拟库函数的strlen的三种方法(指针,递归,计数器)

其实关于库函数strlen的源代码,搞清楚原理,就可以很容易自己写一个库函数方法。

strlen:

size_t strlen ( const char * str );

  1. 字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包 含 '\0' )。
  2. 参数指向的字符串必须要以 '\0' 结束。
  3. 注意函数的返回值为size_t,是无符号的( 易错 )

下面是我用三种方法模拟实现的strlen方法:

1.使用临时变量计数器

int my_strlen1(char* str) {
	int count = 0;
	while (*str)
	{
		count++;
		str++;
	}
	return str;
}

2.使用递归

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

3.使用指针-指针

int my_strlen3(char* str) {
	//首元素的位置
	char* first = str;
	while (*str)
	{
		str++;
	}

	return str - first;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值