中易网

字符统计问题(while)

答案:2  悬赏:40  
解决时间 2021-12-14 13:17
分别统计用户输入的一串字符中的大写字母(’A’~’Z’)、小写字母(’a’~’z’)
和数字(’0’~’9’)的个数,当用户输入回车(’\n’)时,统计结束。
在 main 函数中编写如下的代码:
1. 声明用于存储字符的 char 型变量:ch,初始值为数字 0。
2. 声明用于存储大写字母个数的 int 型变量:upperNum,初始值:0。
3. 声明用于存储小写字母个数的 int 型变量:lowerNum,初始值:0。
4. 声明用于存储数字字符个数的 int 型变量:digitNum,初始值:0。
5. 提示用户输入:在控制台输出“请输入一串字符,按回车结束:”。
6. 使用 while 循环和 getchat 函数统计用户输入字符,步骤如下:使用循环,如
while(ch != ‘\n’){...},或者 do{…}while(ch != ‘\n’),每次循环统计不同类型字
符个数,具体如下:
6.1 调用 getchar 函数从键盘输入 1 个字符并赋值给变量 ch;
6.2 如果 ch 的值在大写字母(’A’~’Z’)范围内,变量 upperNum 自增;
6.2 如果 ch 的值在大写字母(’a’~’z’)范围内,变量 lowerNum 自增;
6.2 如果 ch 的值在大写字母(’0’~’9’)范围内,变量 digitNum 自增;
7. 输出三个整形变量的值。
最佳答案
呵呵,是这样的,楼主的代码用的是while(getchar() != -1),-1是EOF(end-of-file)的宏定义,而在控制台里输入EOF应该是Ctrl+Z。因此,楼主想要结束自己的输入就要用Ctrl+Z。如果用Ctrl+C或者Ctrl+Break,输入被强行中断,但它们都不等于-1,于是循环条件依然满足,所以它们也被计数了。
另外,如果楼主想要看到输出的话,应该加个'\n',也就是输入
abcd回车
^Z
这样,就会打出5(包括回车),如果想要去掉回车,可以增加判断条件,如bct_titus所说,但是这样做的话只能处理一行字符;也可以在nc++前作判断,这样可以处理多行字符:
char tmpCh;
while ( (tmpCh = getchar()) != EOF )
if (tmpCh != '\n')
++nc;
希望能解决您的问题。
全部回答
getchar()!是一个函数,每执行一次就读入一个字符,直到读到换行的符号为止,n++就是n=n+1;
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
杭州到江阴坐汽车多少钱,要多长时间可以到?
资籍的意思是什么啊?请解释下!
豐將的意思是什么?豐將的释义是什么啊?
预制板老楼改地热致使我家棚顶出现很多横纹有
丰索的意思是什么啊?请解释下!
如果你被狗追!很大的那种!你会怎么办?
亲缘的意思是什么?亲缘的释义是什么啊?
洗碗机做CCC认证有哪些程序需要哪些资料在哪
4M电信网络用小米盒子看直播老卡什么原因
惠威音箱怎么样啊?
乐视max手机玩大型游戏发热严重吗,烫不烫手
全民突击四月签到满月送加特林怎么领取
我捡到一只青铜器的酒瓶,不知值不值钱,有这
閒家具的意思是什么?閒家具的释义是什么啊?
忍羞的意思是什么啊?请解释下!
推荐资讯
翼博自动运动典藏版天窗可以打开吗?
巾絮的意思是什么?巾絮的释义是什么啊?
你好,我想问一下,从石家庄市里托运电动车到
福特福克斯两箱方向不回位是什么原因查明
槁窳的意思是什么?槁窳的释义是什么啊?
新乡市牧野区体育局地址在什么地方,想过去办
息驾的意思是什么啊?请解释下!
腰花的意思是什么啊?请解释下!
淄博市周村区园林管理局地址有知道的么?有点
淘宝上买东西退款成功了,货又送过来签收了会
腦瓜子的意思是什么?腦瓜子的释义是什么啊?
揆画的意思是什么啊?请解释下!
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?