我有道C语言题目~ 有兴趣请做做~~
发布网友
发布时间:2024-07-02 12:16
我来回答
共4个回答
热心网友
时间:2024-08-05 05:56
strlen()函数用来计算字符串数组的长度。它包含再<string.h>库中。
这个长度代表字符串中以\0为结束符前面的字符数。
“hello\0\t\\\”可以分解位{'h','e','l','l','o','\0',.....}
'h','e','l','l','o'共5个字符
strlen(st)的值为5。
sizeof()函数用来统计参数所占的内存空间,即字节数。因为数组st[20]是字符型的,每一个数组元素占据一个字节,数组共20个元素。
所以sizeof(st)的值是20。
编译不过的原因有两个:
1、如前所述strlen函数调用应该包含头文件<string.h>
所以应该添加#include<string.h>
2、printf(%d %d \n”,strlen(st),sizeof(st));
这句差一个" 当然编译不过。
修改成printf("%d %d \n”,strlen(st),sizeof(st));
最后修改的代码应该是:
#include<string.h>
#include<stdio.h>(可以省略)
main()
{ char st[20]= “hello\0\t\\\”;
printf(“%d %d \n”,strlen(st),sizeof(st));
}
另外提供一篇关于sizeof()和strlen()详细解释的文章。
链接如下:
http://www.vckbase.com/document/viewdoc/?id=1054
热心网友
时间:2024-08-05 05:57
B
原因dreamsfarm说的很清楚了。
热心网友
时间:2024-08-05 06:00
选 C strlen()是字符串的长度,sizeof()是求字符串占用的存储空间
热心网友
时间:2024-08-05 05:55
"\0"是字符串结束的标志,strlen()遇到"\0"就停止计算字符串的长度,所以strlen(st)=5,
"char st[20]"句作用是在内存区开辟一个20个元素(元素为字符则分20个字节)sizeof()统计st所占的内存空间,故sizeof(st)=20