strlen()函数--使用及模拟实现

本文介绍了C语言中的strlen()函数,用于计算字符串长度。文章详细讲解了函数的使用方法,并通过三个不同的模拟实现方法进行阐述:计数器、指针相减和递归。强调了正确使用strlen()函数时字符串必须以''结尾的重要性,同时展示了错误使用可能导致的不确定结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1、使用介绍

2、模拟实现

(1)方法一:计数器

(2)方法二: 指针相减

(3)方法三:递归


★★★★★ 互相学习,共同进步!

1、使用介绍

strlen()函数的功能是用来求取字符串长度的,我们只需给它传递一个字符串的首地址参数,或者是使用者自己想要开始计数的位置即可。需要注意的是,strlen()只有遇到'\0'才会停止,因此被求取字符串必须以'\0'结尾。

正确使用代码如下:

#include<stdio.h>
#include<string.h>

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

代码运行结果: 8

错误使用代码如下:

#include<stdio.h>
#include<string.h>

int main()
{
	char arr[] = {'a','b','c','d','e','f'};
	int ret = strlen(arr);
	printf("%d\n", ret);
	return 0;
}

代码运行结果: 19  (我自己运行的结果,不唯一也不确sh

上面这个代码,使用者本意是要求 "abcdef" 的长度,但写成了字符数组的形式,且结尾处没有'\0',所以strlen()函数求字符串长度时遇到 ' f ' 不会停止,而后面内存中的内容是未知的。所以求取的结果也是未知的,唯一可以确定的是strlen()函数停下来的未知内存中是'

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值