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

#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);
}
我这个程序实现不了,请问为什么,应该如何

int c,i; //c应该改为 char c
while((c=getchar())!=EOF) //c是字符变量,EOF是字符串,不能把字符串赋给字符变量

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

最好的字符串输入输出形式还是
gets(数组名); //输入
puts(数组名); //输出
不过一般用gets();前都要加上
fflush(stdin);清理键盘缓冲,因为可能程序中有残留的回车等。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-18
修改如下://注释修改,输入字符串再输入回车符,注意不能超过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循环,

本回答被提问者和网友采纳
第2个回答  2013-05-18

你可以这样啊

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

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

第3个回答  2013-05-18
#include<stdio.h>
void main()
{
char s[10];
gets(s);
puts(s);
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网