strlen函数
Posted LC编程开发者
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了strlen函数相关的知识,希望对你有一定的参考价值。
C语言提供了strlen()函数,用于求字符串的长度。函数定义如下:
int strlen (const char *s);
包含的头文件是:
#include <string.h>
该函数就是求参数 s 指向字符串的长度。在介绍“数组”的这一章节中,讲解了字符串的定义。C语言规定,字符串必须以'\\0'字符作为最后一个字符,表示字符串的结束字符,称为:字符串结束符。字符串结束符'\\0'的ASCII是0数值。
例如"abcde"这样的字符串,实际上包含6个字符,分别是:
'a','b','c','d','e','\\0'
可以看到,字符串就是由多个单独的字符组成,其中,最后一个字符必须是字符串结束符'\\0'。
那么,我们可以把一个字符串赋值给字符数组,如下:
char array[6] = 'a','b','c','d','e','\\0';
如下是一个测试例子:
运行的结果如下:
可以看到,定义了字符数组array,数组名代表首地址,所以,数组名array可以表示一个指针,指向array数组存放数据的内存块。
那么,strlen(array); 获取了array指向内存块的字符个数。而且,计算字符个数的时候,是遇到字符串结束符 '\\0' 字符就认为结束。所以,strlen()函数的返回的字符串长度,不包含字符串的结束符。
那么,我们可以写一个测试例子,设置 array[3] = '\\0',就是设置数组中下标为3的元素是字符串结束符。测试代码如下:
程序运行结果如下:
此时,array[6] 中的数据相当于 'a', 'b', 'c', '\\0', 'e', '\\0';那么,使用strlen()函数获取字符串个数时,就从array指向的第一个元素开始数,遇到第四个元素是'\\0'字符,是字符串结束符。
所以,strlen()遇到字符串结束符之后,结束字符串的长度计算。
韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip
以上是关于strlen函数的主要内容,如果未能解决你的问题,请参考以下文章