在程序里,一般会用***strlen()***函数或***sizeof()***来获取一个字符串的长度,但这2种方法获取的字符串的长度其实是不一样,我们用如下函数进行测试:
void test6()
{
char s1[20] = "hello world";
char s2[20] = {'h','e','l','l','0',' ','w','o','r','l','d',' '};
char s3[] = "hello world";
char s4[] = {'h','e','l','l','0',' ',' ','w','o','r','l','d',' '};
printf("%dt%dt%dt%dn",strlen(s1),strlen(s2),strlen(s3),strlen(s4));
printf("%dt%dt%dt%dn",sizeof(s1),sizeof(s2),sizeof(s3),sizeof(s4));
}
该函数运行的结果如下:
strlen函数求得的字符串长度是从字符串第一个元素到第一个’ ’之间元素的个数
sizeof求得的结果是存储该字符串的变量占用的空间大小,因而一定会包括’ ’.若’ ’后还有空余的空间,也会包含到结果里面


