C语言 程序的功能是:把从键盘输入的一行字符作为字符串放在字符数组中,然后输出,请填空

#include<stdio.h>#include<string.h>voidmain(){intm;chars[80],*t;for(m=0;m<79;m++){s[m... #include<stdio.h>
#include<string.h>
void main()
{ int m;
char s[80],*t;
for(m=0;m<79;m++)
{ s[m]=getchar();
if(s[m]=='\n') break;
}
s[m]='\0';
t=s;
while(*t) putchar(*t++);
}
输入的字符数组中未输入部分不是本来就是用'\0'填满吗,为什么还要让s[m]='\0'?
展开
 我来答
馨苜蓿
推荐于2017-11-29 · TA获得超过139个赞
知道答主
回答量:58
采纳率:0%
帮助的人:70.7万
展开全部
在初始化的时候,会在字符串后面z自动加上'\0',在运算的时候for(m=0;m<79;m++)
{ s[m]=getchar();
if(s[m]=='\n') break;
}这里没有将'\0'给是s[m],没有结束标志,所以要赋值
追问
那为什么我用%s输出时,遇到s[i]='\0'就停止输出,而'   '就能输出空格呢?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式