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