c语言strlen(str)_strcmp的用法

c语言strlen(str)_strcmp的用法C语言:Strlen()函数你了解多少?一、strlen()函数的介绍及用法C语言中strlen是一种函数,主要用于计算字符串的长度。strlen()从字符串的开头位置依次往后面计数,直到遇到‘\0’停止,所计算的字符串大小为‘\0’以前的字符所计算的值,最终的字符串长度不包括‘\0’s

C语言:Strlen()函数你了解多少?   一、strlen()函数的介绍及用法   C语言中strlen是一种函数,主要用于计算字符串的长度。   strlen()从字符串的开头位置依次往后面计数,直到遇到‘\0’停止,所计算的字符串大小为‘\0’以前的字符所计算的值,最终的字符串长度不包括‘\0’   strlen因为是一种函数,因此调用这个函数需要引用的头文件是<string.h>,它的原型是size_t strlen(const char* str);str表示的是需要计算长度的字符串,由此看出传参的时候应该传的是一个地址而不是一个数值   下面是利用strlen函数求字符串长度的一个例子
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   为了让大家更好的理解,小编又画了个图帮助大家理解strlen函数的计算
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   通过这个例子是不是对strlen函数有了一定的了解了呢   二、strlen函数与sizeof函数的区分   ⭕有许多初学者可能会混淆sizeof()和strlen()两个的用法,对于同一个字符串来说sizeof()计算的字符串会包含‘\0’,而strlen()不会包含,因此用sizeof计算的字符串大小会多一个字节,我们来看下面这个例子
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   用strlen函数计算的字符串遇到‘\0’则停止,计算了’\0’前面所有字符的大小,而sizeof则是把’\0’也包含在了里面,因此比strlen函数计算的多出了一个字节的大小   三、strlen函数的运用笔试题   既然已经对strlen函数有了一定的认识,那我们通过做一些题目来巩固一下吧✊
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   动手画画图可以更好地帮助理解   下面即将公布答案,看看自己是否已经掌握了呢
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   四、笔试题解析   看到答案是不是有些题觉得不可思议呢 不用着急小编这就带着大家来揭开迷雾   1️⃣ printf(“%d\n”, strlen(arr))——输出结果:6   解释:arr表示的是数组arr首素的地址,strlen(arr)从首素a开始往后计数,遇到’\0’停止,并且返回’\0’前面的计数,因此为6个字节   2️⃣printf(“%d\n”, strlen(arr + 0))——输出结果:6   解释:arr表示的是数组arr首素的地址,因此(arr+0)代表的仍是首素地址,strlen(arr+0)从首素a开始往后计数,遇到’\0’停止,并且返回’\0’前面的计数,因此为6个字节   3️⃣printf(“%d\n”, strlen(*arr))——无法输出结果
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   解释:看到这题的答案是不是瞪大了卡姿兰大眼睛感到很疑惑呢,由图我们可以看到strlen(*arr)是无法输出结果的,这是为什么呢?这还得回归到strlen函数的原型,它的原型是size_t strlen(const char* str),可以看出strlen接受的是一个地址,而*arr表示的是数组首素的值,因此不符合传参的要求,所以无法得出结果   4️⃣printf(“%d\n”, strlen(arr[1]))——无法输出结果   解释:arr[1]表示的是数组第二个素的值,同理3️⃣可得,此题也无法得出结果   5️⃣printf(“%d\n”, strlen(&arr))——输出结果:6   解释:&arr表示的是整个数组的地址(具体内容可以看小编前几天发布的文章),从首素a开始往后计数,遇到’\0’停止,并且返回’\0’前面的计数,因此为6个字节   6️⃣printf(“%d\n”, strlen(&arr+1))——输出结果:随机值   解释:&arr表示的是整个数组的地址(具体内容可以看小编前几天发布的文章),(&arr+1)则表示的是跳过数组的后面那一块空间的首地址,后面的空间是未知的,不知道什么时候会再遇到‘\0’,所以strlen(&arr+1)就是一个随机值
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法   7️⃣printf(“%d\n”, strlen(&arr[0]+1))——输出结果:5   解释:&arr[0]取出的是数组第一个素的地址,所以(&arr[0]+1)就是数组第二个素的地址,strlen(&arr[0]+1)从数组第二个素开始计数,遇到’\0’停止,并且返回’\0’前面的计数,因此为5个字节   看完解释有没有感觉豁然开朗的感觉⛅   初次创作,内容如有错误欢迎各位大神批评指正 大家如果觉得有帮助的话点个赞支持一下博主喔✊✊后续还会继续更新其他的笔试题给到大家,如感兴趣可以多多一下博主
c语言strlen(str)_strcmp的用法
c语言strlen(str)_strcmp的用法

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/66473.html

(0)
上一篇 2024年 8月 9日
下一篇 2024年 8月 9日

相关推荐

关注微信