0
点赞
收藏
分享

微信扫一扫

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


题目描述

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

输入

一行字符

输出

统计值

样例输入

aklsjflj123 sadf918u324 asdf91u32oasdf/.';123

样例输出

23 16 2 4

来源/分类

C语言 

题目截图:

题目中的空格 数字这两个选项位置放反啦~

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

思路:

我们只好通过一个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;
}

执行结果:

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


OJ结果:

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


举报

相关推荐

0 条评论