字符串长度计算函数
字符串在使用过程中经常需要获知其长度,C语言提供了strlen()函数用于获取字符串的长度,函数声明如下所示:
unsigned int strlen(char *s);
在上述声明中,参数s是指向字符串的指针,返回值是字符串的长度。需要注意的是,使用strlen()函数得到的字符串的长度并不包括末尾的空字符‘\0’。示例代码如下:
strlen("hello"); //获取字符串hello的长度
char *str="12abc";
strlen(str); //获取字符串指针str指向字符串的长度
因为strlen()函数不将字符串末尾的‘\0’计入字符串长度,所以上述两行代码的结果均为5。使用strlen()函数,读者可以很容易的获取字符串的大小。
小提示:strlen()函数与sizeof运算符
strlen()函数与sizeof运算符在求字符串时是有所不同的,下面简单总结一下strlen()函数与sizeof运算符的区别,具体如下:
(1)sizeof是运算符;strlen()是C语言标准库函数,包含在string.h头文件中。
(2)sizeof运算符功能是获得所建立的对象的字节大小,计算的是类型所占内存的多少;strlen()函数是获得字符串所占内存的有效字节数。
(3)sizeof运算符的参数可以是数组、指针、类型、对象、函数等;strlen()函数的参数是字符串或以‘\0’结尾的字符数组,如果传入不包含‘\0’的字符数组,它会一直往后计算,直到遇到‘\0’,因此计算结果是错误的。
(4)sizeof运算符计算大小在编绎时完成,因此不能用来计算动态分配内存的大小;strlen()结果在运行时计算。