C语言题目:编写一个程序,把输入作为字符流读取,直至遇到EOF。输出大写字母和小写字母的个数。

如图,怎么让它输出,按Enter键没用,输入EOF再按Enter也没用 ctrl+z也没用

输入EOF的方法:先换新行(按回车),然后按ctrl+z,然后再回车。

如果是统计大小写字母个数的话,你这程序错了,下面是我写的,你看看是不是你想要的

#include <stdio.h>
int main()
{
char ch;
int m, n;
m = n = 0;
printf("please input character:\n");
while ((ch = getchar()) != EOF)
{
if(('A' <= ch) && (ch <= 'Z'))
m++;
if(('a' <= ch) && (ch <= 'z'))
n++;
}
printf("大写字母个数:%d   小写字母个数:%d\n", m, n);

return 0;
}

追问

知道了,我的数值范围错了,谢啦!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-04-07
按照下面这样改
#include<stdio.h>
#include<conio.h>
int main(void)
{
   char ch;
   int m,n;
   m=n=0;
         
    while((ch=getchar())!='\n')//c接收的值是输入第一个字符后按下的回车换行符'\n',c是不会显示的
    {
       if(('0'<=ch)&&(ch<='32'))
   m++;
   if(('33'<=ch)&&(ch<='65'))
   n++;
    }
    printf("%d   %d",m,n);
return 0;
}

追问

这样我知道,可它题目是这样的嘞

追答

按ctrl+c可以退出

相似回答