ACMNO.8输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 输入 一行字符 输出 统计值 样例输入 aklsjflj123 sadf918u324 asdf91u32

版权声明:转载请声明原文链接地址,谢谢! https://blog.csdn.net/weixin_42859280/article/details/84886751

题目描述

输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

输入

一行字符

输出

统计值

样例输入

aklsjflj123 sadf918u324 asdf91u32oasdf/.';123

样例输出

23 16 2 4

来源/分类

C语言 

题目截图:
题目中的空格 数字这两个选项位置放反啦~
在这里插入图片描述思路:

我们只好通过一个getchar()函数逐个对输入的字符进行修改啦~
一个一个进行判断!
反正是这个函数!

getchar()是到缓冲区读取第一个字符
首先,从键盘输入许多字符,最后回车后,所有字符包括回车放到缓冲区
这时才开始循环执行getchar(),读入一个字符判断是否回车,不是就继续读。
是回车就退出循环(之所以说是顺序接受一行字符,是因为它取的始终是缓冲区中第一个字符,
每取一个缓冲区的字符少一个,也就是顺序读取了!

代码:

#include<iostream>
 using namespace std;
 int main()
 {
 char c;int a,b,x,y;a=b=x=y=0;
 
 while((c=getchar())!='\n')
 {
 	if((c>='a'&&c<='z')||(c>'A'&&c<'Z'))
 		a++;
 	else
	 if(c==' ')
 		b++;
 	 else
	 	if(c>='0'&&c<='9')
 			x++;
 		else
 		y++;
 	

 }
 //cout<<a<<" "<<b<<" "<<x<<" "<<y<<" "<<endl;
	cout<<a<<" "<<x<<" "<<b<<" "<<y<<" "<<endl;
}

执行结果:
在这里插入图片描述
OJ结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42859280/article/details/84886751