在C语言中 怎么在键盘上给一个字符型的数组输入带回车的字符串

例如chara[20];gets(a);我需要在键盘上给a输入a回车键b回车键c;可是gets遇到回车就跳出了;这时该怎么办;有什么函数可以遇到回车键不跳出的?... 例如 char a[20]; gets(a); 我需要 在键盘上 给a 输入 a回车键b回车键c ;可是 gets 遇到回车就跳出了 ;这时该怎么办;有什么函数可以遇到回车键不跳出的? 展开
 我来答
刺友互
高粉答主

2019-06-18 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:65.2万
展开全部

1、首先我们新建一个dev C++的项目。

2、接下来在项目中新建C语言程序文件。

3、然后在C语言文件中声明一个字节数组。

4、接下来我们通过printf函数提示用户输入字符串,通过scanf接收用户输入的字符串。

5、接着在通过printf函数输出用户输入的内容。

6、最后运行C语言程序,我们输入内容以后就可以输出了。在C语言中从键盘输入字符串通过scanf实现,输出可通过printf函数实现

风若远去何人留
2017-06-14 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450103
专业C/C++软件开发

向TA提问 私信TA
展开全部

常用的方法有两种:

1、通过getchar循环读入每个字符,存到数组中,直到遇到换行符,结束循环并赋值结束符。

参考代码:

char s[100];
int i;
i = 0;
while((s[i]=getchar())!='\n') //循环读入,并赋值到数组中,直到遇到回车。
    i++;
s[i+1]='\0';//赋值结束符。

2、通过gets或者fgets函数读入一行。 

不过通过gets函数获取的虽然是一行输入,但是结尾的\n会被替换为结束符\0,所以如果要在字符串中存在换行符,那么需要手动增加。

参考代码:

char s[100];
int len;
gets(s);//读入整行。
len = strlen(s);//获取读入字符串长度。
s[len] = '\n';//结尾增加换行符。
s[len+1] = '\0';//赋值新的结束符。

注意使用到strlen,程序需要包含头文件string.h。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
你定义的是char数组,gets(a)是要求全部输入的,一回车就确定你输入了~这个函数就是这样的,你输入abc按回车就是,说你复制a[0]='a',a[1]='b',a[2]='c',其他还是空~如果你要换成一个一个输的话就用for吧将gets(a); 改成int i;for(i=0;i<20;i++) scanf("%c",&a[i])这样就行了~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
用getchar不要用gets 在20次的循环里面getchar
int i = 0;for(;i<20;++i){a[i] = getchar();}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
#include<stdio.h>void main(){
char a[10]; for(int i=0;i<10;i++){
scanf("\n%c",&a[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式