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函数的主要内容,如果未能解决你的问题,请参考以下文章

strlen函数与sizeof的区别

strlen() 函数

为啥我的 strlen 函数总是“崩溃”? [关闭]

模拟实现Strlen函数

[PHP源码阅读笔记]strlen函数

strcpy,strlen函数和string类原型