strlen()求的是长度,针对的对象是字符串,而 sizeof()求的是大小,针对的是类型,首先大家要明确的一个概念是,strlen()是函数,而 sizeof()表面看起来是函数,其本质是关键字。
#include<stdio.h>
#include<string.h>
void main()
{
char str[] = "hello world"; //注,hello 与 world 之间有一空格
printf("strlen = %d\n",strlen(str));
printf("sizeof = %d\n",sizeof(str));
}
说明:strlen()计算的是字符串的有效长度,即不包含’\0’的长度,sizeof()计算的是类型所占内存空间的大小(以字节为单位),对于字符串来说,要包含’\0’所占的空间,即 char str[]是一个数组,其大小为字符串”hello C”所占空间大小,注意的是,每个字符串末尾会有一个’\0’的结束标记,也会占用其存储空间。