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

#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'?

在初始化的时候,会在字符串后面z自动加上'\0',在运算的时候for(m=0;m<79;m++)
{ s[m]=getchar();
if(s[m]=='\n') break;
}这里没有将'\0'给是s[m],没有结束标志,所以要赋值追问

那为什么我用%s输出时,遇到s[i]='\0'就停止输出,而' '就能输出空格呢?

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答