getchar()是c语言中的一个输入函数。
可以用它来赋一个字符的值。
例如:char aa=getchar()。
当你在键盘上输入一个字符(如输入g)后按回车,那么字符变量a的值就是'g'了。
与scanf的区别:
1、getchar()函数只能输入一个字符型的值,而scanf()函数除了字符型,还可以输入多种数据类型的值,包括整型、浮点型等。
2、scanf()函数输入字符型需要%c说明符,而getchar()函数不需要说明符。
getchar()函数的注意事项:
1、当程序调用getchar时,程序就等着用户按键,用户输入的字符被存放在键盘缓冲区中,直到用户按回车为止(回车字符也放在缓冲区中)。
当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。
如果用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。
2、getchar有一个int型的返回值,当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕。
#include<stdio.h>int main(void)
{
int nc=0/* number of characters */
int nq=0/* numerical quantities */
int bs=0/* number of blank spaces */
char str[81],e
int i,nw=0,word=0
printf("Text Analysis\n")
printf("please input the Text:\n")
while(gets(str)) // 循环条件改了
{
for(i=0str[i]i++) // 循环条件改了
{
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) nc++
else if(str[i]>='0'&&str[i]<='9') nq++
else if(str[i]==' ') bs++
}
for(i=0(e=str[i])!='\0'i++)
{
if(e==' ') word=0
else if(word==0)
{
word=1
nw++
}
}
}
printf("Number of Words:%d \n",nw)
printf("Number of Characters:%d\n",nc)
printf("Number of blank spaces:%d\n",bs)
printf("Number of numerical characters:%d\n",nq)
return 0
}
试下行不行?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)