超详细讲解长度不受限制的字符串函数(保姆级教程!!!)
一、求字符串长度函数
strlen
size_t strlen(const char *str) ,即strlen函数是计算字符串 str 的长度,直到空结束字符,但不包括空结束字符。
strlen函数的使用
下面为strlen函数的使用例子。
#include <stdio.h>
int main()
{
const char*str1 = "abcdef";
const char*str2 = "bbb";
if(strlen(str2)-strlen(str1)>0)
{
printf("str2>str1\n");
}
else
{
printf("srt1>str2\n");
}
return 0; }
而上述代码的输出结果,在于strlen函数的特点。
1、字符串以 ‘\0’ 作为结束标志,strlen函数返回的是在字符串中 ‘\0’ 前面出现的字符个数(不包
含 ‘\0’ )。
2、参数指向的字符串必须要以 ‘\0’ 结束。
3、注意函数的返回值为size_t,是无符号的。
4、学会strlen函数的模拟实现。
strlen函数与sizeof的区别
首先,strlen 是函数,sizeof 是运算操作符,二者得到的结果类型为 size_t,即 unsigned int 类型。大部分编译程序在编译的时候就把 sizeof 计算过了,而 strlen 的结果要在运行的时候才能计算出来。
对于以下代码:
char *str1 = "asdfgh";
char str2[] = "asdfgh";
char str3[8] = {
'a', 's', 'd'};
char str4[] = "as\0df";
输出结果是:
sizeof(str1) = 4; strlen(str1) = 6;
sizeof(str2) = 7; strlen(str2) =