C语言,如何向一个字符数组输入字符,并打印?

#include<stdio.h>main(){intc,i;chars[10];while((c=getchar())!=EOF){for(i=0;i<10;i++)s... #include<stdio.h>
main()
{
int c,i;
char s[10];
while((c=getchar())!=EOF)
{
for(i=0;i<10;i++)
s[i]=c;
}
printf("%s",s);
}
我这个程序实现不了,请问为什么,应该如何
展开
 我来答
百度网友5bbf1ee
2013-05-18 · 超过24用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:67.3万
展开全部
int c,i; //c应该改为 char c
while((c=getchar())!=EOF) //c是字符变量,EOF是字符串,不能把字符串赋给字符变量

也可以用scanf();输入。不过要求输入的时候字母间不能加空格。
例:scanf("%s",s); //s是数组名,s前不必加&,因为数组名就是该数组的首地址。

最好的字符串输入输出形式还是
gets(数组名); //输入
puts(数组名); //输出
不过一般用gets();前都要加上
fflush(stdin);清理键盘缓冲,因为可能程序中有残留的回车等。
百度网友6fe74e2
2013-05-18 · TA获得超过6593个赞
知道大有可为答主
回答量:1973
采纳率:100%
帮助的人:273万
展开全部
修改如下://注释修改,输入字符串再输入回车符,注意不能超过9个字符
#include<stdio.h>
int main()
{
int c,i=0; //
char s[10]={0};//
while((c=getchar())!='\n') //EOF
{
//for(i=0;i<10;i++)
s[i]=c;
i++;//
}
printf("%s",s);
}

最好用gets输入字符串,puts输出字符串:
#include<stdio.h>
int main()
{

char s[10]={0};
gets(s);
puts(s);
}
或者scanf
#include<stdio.h>
int main()
{

char s[10]={0};
scanf("%s",s);
printf("%s",s);

}
追问
第一个里面,为什么for循环之后还要一个i++?
追答
while也是循环,i++目的就是让数组元素位置移位,你每输入一个字符就存进数组一次,然后位置移到下一个位,存你再输入的字符,而且已经删除了for循环,
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的家123权位
2013-05-18 · 超过18用户采纳过TA的回答
知道答主
回答量:79
采纳率:0%
帮助的人:40.5万
展开全部

你可以这样啊

#include<stdio.h>
main()
{
    int c,i;
    char s[10];
    scanf("%s",s);
    printf("%s",s);
}

你定义的是10个字符,假如你输入多了只会输出前10个

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
潇湘月heaven
2013-05-18 · 超过12用户采纳过TA的回答
知道答主
回答量:130
采纳率:0%
帮助的人:42.9万
展开全部
#include<stdio.h>
void main()
{
char s[10];
gets(s);
puts(s);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式