getchar()函数的用法
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吗??? 展开
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函数暂停程序运行,当按任意键后程序继续运行。
推荐于2017-11-26 · 知道合伙人软件行家
你可以输入一串字符再按回车,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从键盘缓冲区取一个字符给数组:
完整走一遍就可以很好理解了^-^
例:c=getchar()这个语句的话,程序执行到这个地方的时候,会要求你输入一个字符,输入字符按下回车,你所输入的字符就传到了变量c中
再例:getchar()表示起暂停作用哦。
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();吧?
广告 您可能关注的内容 |