版权声明:转载请声明原文链接地址,谢谢! 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结果: