C语言中strlen()函数的使用详解

1、strlen函数的各个参数介绍

   size_t  strlen (const char* str)

①函数名为strlen

②返回值类型为size_t,这是一个无符号的类型,可能是整型,也可能是长整型。

③函数的参数是一个字符类型的数组,这个数组用char*类型来接收,且这个数组内容不能被修改。

2、strlen函数的作用

strlen函数是用来求字符串长度的函数,这个函数遇到‘\0’就会停止,且这个长度不包含‘\0’。

如,字符串“abcd\0ef”,这个字符串的长度为4,遇到'\0'之后就不再数了,且长度不包含‘\0’。

3、易错处分析

①返回值类型为无符号整数,这就使得我们在使用时会出现一种情况,见代码如下:

#include<stdio.h>
#include<string.h>
int main()
{
	if (strlen("abc") - strlen("abcdef") >= 0)
		printf(">=\n");
	else
		printf("<\n");
	return 0;
}

通过代码,我们可能觉得这个打印的是“<”,但是,strlen函数返回的是无符号整数,无符号整数-无符号整数还是无符号整数,无符号整数是永远>=0的,所以打印的会是">="。运行结果如下:

4、模拟实现

①方法一:计数器

size_t my_strlen1(const char* ch)
{
	size_t count = 0;
	while (*ch)
	{
		count++;
		ch++;
	}
	return count;
}

②方法二:递归

size_t my_strlen2(const char* ch)
{
	if (*ch == '\0')
		return 0;
	return my_strlen2(ch + 1) + 1;
}

③方法三:指针-指针

size_t my_strlen3(const char* ch)
{
	char* p = ch;
	while (*p)
	{
		p++;
	}
	return p - ch;
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不会算法的笨小孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值