getchar()函数的用法

charstr[100]={0};printf("输入n",);scanf("%d",&n);getchar();for(i=0;i<n;i++)str[i]=getch... char str[100]={0};
printf("输入n",);
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
str[i]=getchar();
printf("输出m:");
scanf("%d",&m);
printf("%s\n",str+m-1);
问题1:请问str[i]=getchar();是什么意思????getchar()不是识别回车的么?这是什么用法?
问题2:printf("%s\n",str+m-1);这个语句str+m-1是什么意思?语句printf("%s\n",str+m-1)意思是输入字符从i=0开始 直到str+m-1吗???
展开
 我来答
guxuecan剑
推荐于2019-09-18 · TA获得超过3.1万个赞
知道答主
回答量:86
采纳率:0%
帮助的人:1.4万
展开全部

getchar有一个int型的返回值。当程序调用getchar时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。

getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕。

1、str[i]=getchar()的意思是等待用户输入,将用户输入的值赋值给str[i](因为这句在循环语句中,所以是给str[]数组赋值)。

2、printf("%s\n",str+m-1)的意思是从字符数组的第m个元素开始,输出后面的所有元素。str+m-1就是str[]数组的第m个元素的指针(地址)。

扩展资料:

getch与getchar基本功能相同,差别是getch直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch就立刻返回,,getch返回值是用户输入的ASCII码,出错返回-1。输入的字符不会回显在屏幕上,getch函数常用于程序调试中,在调试时,在关键位置显示有关的结果以待查看,然后用getch函数暂停程序运行,当按任意键后程序继续运行。

ahulxh
推荐于2017-11-26 · 知道合伙人软件行家
ahulxh
知道合伙人软件行家
采纳数:267 获赞数:805
研究生教学:数据结构与算法、计算机图形学…… 本科生教学:C语言程序设计、多媒体创作……

向TA提问 私信TA
展开全部
1 str[i]=getchar();取一个输入的字符放在str[i]中

你可以输入一串字符再按回车,for循环依次到输入缓冲区中取字符
2 输出str+m-1的意思是从第m个字符开始打印刚刚输入的字符串剩下的内容,因为C数组从0开始计数,所以这里要减一个1
追问
能把for循环帮我写出来吗?谢谢
追答

我来想想怎么演示这一过程……

首先是完善并纠正程序中的错误:

#include<cstdio>

#include<string.h>

int main()

{   

    int i, m, n;

    char str[100]={0};

    printf("输入n:");

    scanf("%d",&n);

    getchar();

    for(i=0;i<n;i++)

        str[i]=getchar();

    printf("输出m:");

    scanf("%d",&m);

    printf("%s\n",str+m-1);

   return 0;

}

其次是完整运行一下程序:

最后结合断点调试观察for循环每执行一次,getchar从键盘缓冲区取一个字符给数组:

完整走一遍就可以很好理解了^-^

本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漾漾没有心
2008-09-12 · TA获得超过1057个赞
知道小有建树答主
回答量:470
采纳率:0%
帮助的人:525万
展开全部
getchar函数中输入一个字符,包括数字都可以。
例:c=getchar()这个语句的话,程序执行到这个地方的时候,会要求你输入一个字符,输入字符按下回车,你所输入的字符就传到了变量c中
再例:getchar()表示起暂停作用哦。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友24a9bd8a3
2008-01-29
知道答主
回答量:8
采纳率:0%
帮助的人:4.5万
展开全部
楼上的说的不错,c的值应该是“/n”,而不是“3”,“3”送给了“f”,用“getch()”不错,getch()和getchar()的区别在于读入的数据经不经过标准输入流(stdin),getchar()要读入的信息是要在屏幕上显示出来的,所有输入的可打印字符均会被读入,而用getch()则不会在显示屏上出现输入字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mmgirl2007
2014-02-09
知道答主
回答量:20
采纳率:0%
帮助的人:6.3万
展开全部
str[i]=getchar();是将输入的字符赋给str[i]数组成员
getchar()是识别回车,按回车后字符才送到内存
printf("%s\n",str+m-1);这个语句str+m-1是地址,语句printf("%s\n",str+m-1)意思是输入字符从
i=str+m-1开始 直到字符串结束
追问
str[i]=getchar();意思是 上一步已经有getchar();了 因此字符已经送到内存了而 str[i]=getchar();可以直接使用存入内存中的字符呗?如果开始没有getchar();那么应该不能直接用str[i]=getchar();吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(12)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式