strlen函数
strlen函数的作用:得到字符串的有效长度
strlen函数的返回值:字符串有效长度(单位是字节)
strlen函数遇到‘\0’停止,计算结果不包括’\0’
需引用字符串函数头文件:#include<string.h>
举以下例子,方便大家进一步了解掌握:
#include<stdio.h>
#include<string.h> //不要忘了引用字符串函数头文件
int main()
{
char arr[] = "abcdefg"; //创建一个数组,以字符串abcdefg为例
int ret = strlen(arr); //用一个int型变量接收 从a开始向后读,只到遇到'\0'停止,不包括'\0',是7个字节
printf("%d", ret); //打印字符串返回值
// printf("%d",strlen(arr)); 也可以像这样直接打印
return 0;
}
输出结果为:
字符串:字符串写在双引号里,以’\0’结尾,但’\0’不显示。如上述的“abcdefg”,g后有一个隐藏的’\0’.
sizeof
sizeof的作用:计算变量或者类型在内存中所占空间的大小
sizeof的返回值:变量或者类型在内存中所占空间的大小(单位是字节)
需要注意的是,sizeof并非是函数,而是一个运算符(比如“+”就是一种运算符)。
举以下例子,方便大家进一步了解掌握:
#include<stdio.h>
int main()
{
printf("%d\n",sizeof(char)); //计算char类型在内存中占几个字节
printf("%d\n",sizeof(short)); //计算short类型在内存中占几个字节
printf("%d\n",sizeof(int)); //计算int类型在内存中占几个字节
return 0;
}
输出结果为:
strlen函数与sizeof的区别
#include<stdio.h>
#include<string.h> //引用字符串函数头文件
int main()
{
char arr[] = "abcdefg";
printf("%d\n", strlen(arr)); //从a向后读取,到'\0'停止,不包括'\0',为7个字节
printf("%d\n", sizeof(arr)); //从a向后读取,获取数组的总大小,包括'\0',为8个字节
return 0;
}
核心区别即strlen不包括’\0’,sizeof包括’\0’
输出结果为:
最后,给大家几点使用时的建议:
1.strlen函数只能用于计算字符串有效长度,这一点要牢记
2.strlen函数使用时不要忘了引用头文件#include<string.h>
ps:上面全是博主犯过的错误。