字符函数和字符串函数(一)

文章介绍了C语言中的strlen函数,用于计算字符串长度,强调函数返回的是前的字符数,并非包括。通过示例解释了未正确添加可能导致的问题。同时,提供了两种模拟实现strlen函数的方法:使用临时变量和递归。文章提醒读者注意strlen返回值为无符号类型,避免在比较时产生误解。

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

目录

文章目录

前言

一、strlen函数简要概述

二、如何模拟实现strlen函数

1.引入临时变量

2.函数递归

总结



前言

c语言中对字符和字符串的处理很是频繁,但是c语言本身是没有字符串类型的,字符串通常放在常量字符串或字符数组中,字符串常量适用于那些对它不做修改的字符串函数,今天,咱就给大家浅浅介绍下字符串函数中的strlen函数吧!


提示:以下是本篇文章正文内容,下面案例可供参考

一、strlen函数简要概述

size_t strlen ( const char * str);

字符串以‘\0’作为结束标志,特别注意strlen函数返回的是字符串中‘\0'前面出现的字符个数(不包含’\0'。以下图为例:

 观察发现,当我们将字符串初始化时,初始化的方式不同,结果也不尽相同:

方式一:数组形式

1.以字符形式初始化,且指明数组长度时,后面会自动加'\0';若未指明数组长度,则应手动加‘\0',可以推出结论,若未指明数组长度且未手动加‘\0’时,调用strlen函数测数组长度,得到的是垃圾值。

 方式二:指针形式

1.指针可以重新指向新的字符串

2.不允许通过指针修改字符串常量

 小总结:

(1)参数指向的字符串必须要以‘\0'结束。

易错点:注意strlen函数的返回值为size_t,是无符号的。

举个栗子:

当你看到如下这段代码:

int main()
{
    char s1[] = "abc";
    char s2[] = "abcd";
	if (strlen(s1) - strlen(s2) > 0)
	{
		printf(">\n");
	}
	else
	{
		printf("<=\n");
	}
	return 0;
}

你也许会出自本能地思考:strlen(s1)的结果为3字节,strlen(s2)的结果为4字节,二者相减的话,打印出的结果应该是"<="吧......如果你这么想,哈哈,恭喜你入坑了!!!

实际上,strlen(s1)-strlen(s2)的结果的确为-1,但如果把它看作是无符号的整型,那么它就是一个很大的正数,打印出的结果自然也就是”>"了。

二、如何模拟实现strlen函数

1.引入临时变量

代码如下:

2.函数递归

代码如下:


总结

今天为大家简单介绍了strlen函数的用法,若文章出现纰漏,欢迎指出。本人一定及时纠正。

另外,期待与大家的共同进步,我们下期再见喽!

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值