C语言中用%s输出数组遇到的问题
#include<stdio.h>intmain(void){inti=0;chara[20];while((a[i++]=getchar())!='\n');print...
#include <stdio.h>
int main(void)
{
int i = 0;
char a[20];
while((a[i++]=getchar())!='\n');
printf("%s",a);
return 0;
}
用这种方式输出字符之后,输出字符的后面总是带着几个其他的字符,这是怎么回事? 展开
int main(void)
{
int i = 0;
char a[20];
while((a[i++]=getchar())!='\n');
printf("%s",a);
return 0;
}
用这种方式输出字符之后,输出字符的后面总是带着几个其他的字符,这是怎么回事? 展开
6个回答
展开全部
因为数组没有初始化。也就是%s输出时,要遇到"\0"才结束。你的数组没有赋值"\0"。
希望给予采纳!
希望给予采纳!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int main(void)
{
int i = 0;
char a[20];
while((a[i++]=getchar())!='\n')//这的;不要加
{}
a[i-1]='\0';
printf("%s",a);
return 0;
}
printf()这个函数是按碰到'/0'才停止输出的,所以要最加/'0',不加就会输出多于的东西
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <stdio.h>
int main(void)
{
int i = 0;
char a[20];
while((a[i++]=getchar())!='\n');
a[i]=0;//加这一句就行了,表示形成串
printf("%s",a);
return 0;
}
int main(void)
{
int i = 0;
char a[20];
while((a[i++]=getchar())!='\n');
a[i]=0;//加这一句就行了,表示形成串
printf("%s",a);
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询