c语言getchar函数的问题

getchar只能读取定义数量的字符么?能不能实现我随便输入多少个字符都能进行判断?比如说:
用getchar函数输入一行字符,分别统计出其中英文字母、空格、数字和其他字母的个数

getchar是一次读一个字符的,你可以用while来实现你所说的功能比如说:
#include <stdio.h>
void main()
{
char a;
while((a=getchar())!='#')printf("%c",a);
}
当你没输入'#'时,这个程序就不会终止,每次结束输入都返回之前输入的字符串。
于是用
#include <stdio.h>
void main()
{
char a;
int i=0;
while((a=getchar())!='#')
{
if(a=='a')i++;
}
printf("\na有%d个\n",i);
}
可以统计a的数量。
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-10-22
getchar()函数一次只能从终端输入一个字符,要想用getchar()函数实现上述功能,可以用while()循环,循环结束条件可由自己设定!
第2个回答  2010-10-22
getchar函数的作用是从终端输入一个字符。它只能接受一个字符,要是输入一串字符,可以用gets()啊。
第3个回答  2020-06-14
getchar()是在字符缓冲区里读数据的,getchar是在你输入enter的时候才从缓冲区里读数据的,在你没有输入Enter前,字符都是放在缓冲区的,
比哪,你输入“china”,再按回车,china就放入了缓冲区,
并且由while((c=getchar())!='\n')一个个字符的读取,当读到了回车(\n)就结束,
还有个读取字符的getch(),比较下这两个,你会得到更多细节,
第4个回答  2019-02-24
这里用的是getch()函数,而不是getchar()函数,因此二程序不具有可比性
getch()不是标准库函数,它是字符缓冲,而gethcar()是行缓冲。

C语言中的getchar()函数不被编译[急]
在C语言编程中,使用getchar()函数时,需确保正确读取用户输入并处理。若使用如下代码:printf("请选择:"); a=getchar();printf("1\\n");应当修改为:printf("请选择:"); a=getchar();getchar();printf("1\\n");原因在于,当你输入一个字符后,必须读取并处理回车键。getchar()函数在接收...

C语言 getchar()原理及易错点解析
解决使用getchar()清除缓存问题:如果在第一次输入ab后加一个空格再回车,程序只输出了ab后自动退出,原因是第一次输入后的缓存中保存了ab后面的一个空格,使得程序误以为已经完成了输入。解决方法是运行两次getchar();,清除掉第三格中的空格键和第四格中的回车键,即可正常进行下一次输入。解决多个空...

关于C语言getchar()的问题
这种情况多见于在上次输入完成时按了回车键,所以产生了一个回车符('\\n'或者'\\r'),这个字符没有被i=getchar()之前的读取操作读取,所以到了这里系统不会再次等待用户从键盘输入(因为缓冲区中还有字符),而会直接把这个回车符读取。为避免这种情况,可以在getchar()之前用fflush(stdin);来一次性清...

c语言getchar函数的问题
getchar是一次读一个字符的,你可以用while来实现你所说的功能比如说:include <stdio.h> void main(){ char a;while((a=getchar())!='#')printf("%c",a);} 当你没输入'#'时,这个程序就不会终止,每次结束输入都返回之前输入的字符串。于是用 include <stdio.h> void main(){ char ...

c语言中getchar()函数的用法是什么啊?
一、问题描述:从键盘输入一个字符串给str和一个字符给c,删除str中的所有字符c并输出删除后的字符串str。1、输入:第一行是一个字符串; 第二行是一个字符。2、输出:删除指定字符后的字符串。二、设计思路:1、 同插入问题,定义两个字符数组a,b。以及标志删除位置的int型pos。2、用gets函数...

C语言getchar()函数问题
getchar():1,只有要按“回车”键之后输入才生效 2,只接收一个字符而不是字符串 3,可以给它赋值,也可以用来作表达式的一部分 如char c=getchar();4,它和getche(),后者不用按“回车”再给你个例子:include<stdio.h> main(){ char c1,c2;c1=getchar();c2=getchar();putchar(c1);put...

c语言中 getchar () 问题
首先要说明的是getchar函数的返回值是整型,这里你用string类型去接收getchar函数的返回值自然会有问题了。建议你先好好看看getchar函数的原型和用法。 另外就是string类型是字符串类型,判断应该是不等于一个字符串,而不是和一个字符比较。

C语言getchar()问题,耐心的进
对你的第一个问题:int ch1=getchar();int ch2=getchar();int ch3=getchar();在你输入9回车6回车,那么此时缓冲区的字符数据为入 9回车6回车(实际上计算机认为你输入的是字符9和6,因为getchar是针对字符的,由于你定义的是int型,因此计算机会自动转换为它的ASC码,也就是一个整数,再你输出...

C语言 getchar()原理及易错点解析
getchar()是stdio.h库中的函数,用于从标准输入流读取单个字符。其工作原理为:输入设备数据首先存入内存缓冲区,然后通过getchar()函数从缓冲区读取字符。第一次调用getchar()时,需要手动输入字符,之后会直接从缓冲区读取。缓冲区满时,后续输入的字符不会立即被读取。getchar()函数有两个主要作用:...

C语言getchar()函数问题
getchar()是在字符缓冲区里读数据的,getchar是在你输入enter的时候才从缓冲区里读数据的,在你没有输入Enter前,字符都是放在缓冲区的,比哪,你输入“china”,再按回车,china就放入了缓冲区,并且由while((c=getchar())!='\\n')一个个字符的读取,当读到了回车(\\n)就结束,还有个读取字符...

相似回答