strlen求字符串长度:只求有效字符串的长度,不包括'\0'
即'\0'前面所有的字符
int main()
{
char acX[] = "abcdefg";
char acY[] = {
'a','b','c','d','e','f','g'};
int len = strlen(acX);
int len1 = strlen(acY);
printf("len=%d\n", len);
printf("len1=%d\n", len1);
return 0;
}
打印结果如下:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201230210824917.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2NmazE3ODI5NTcyNjQz,size_16,color_FFFFFF,t_70#pic_center)
而求数组的长度,这与strlen求长度是有区别的
strlen是求字符串的长度,而求数组的长度即可以理解为数组内所占元素的个数
如下题:
char acX[] = “abcdefg”;
char acY[] = {
‘a’,’b’,’c’,’d’,’e’,’f’,’g’};
A.数组acX和数组acY等价
B.数组acX和数组acY的长度相同
C.
D.数组acX的长度小于数组acY的长度
acX和acY都是字符数组,但是初始化表达式不同,acX和acY的区别如下:
acX:数组中总共有8个元素,分别是:'a','b','c','d','e','f','g','\0'
acY:数组中总共有7个元素,分别是:'a','b','c','d','e','f','g'
所以,数组acX的长度大于数组acY的长度