Problem B: 字符统计
Description
给出一串字符,要求统计出里面的字母、数字、空格以及其他字符的个数。字母:A, B, ..., Z、a, b, ..., z组成数字:0, 1, ..., 9 空格:" "(不包括引号) 剩下的可打印字符全为其他字符。
Input
测试数据有多组。每组数据为一行(长度不超过100000)。数据至文件结束(EOF)为止。
Output
每组输入对应一行输出。包括四个整数a b c d,分别代表字母、数字、空格和其他字符的个数。
Sample Input
A0 ,
Sample Output
1 1 1 1
#include <iostream>
#include <stdio.h>
#include <cstring>
using namespace std;
int main()
{
int a,b,c,d,n,i;
char str[100000];
while(gets(str))
字符串长度统计{a=0;b=0;c=0;d=0;
n=strlen(str);
for(i=0;i<=n-1;i++)
{if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))
a++;
else if(str[i]>='0'&&str[i]<='9')
b++;
else if(str[i]==' ')
c++;
else d++;}
cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;}
return 0;
}
通过题目,我们可以知道,题目主要考查的是如何区分字母、数字、空格和其他字符,即如何使用IF语句。
因为给的是字符,所以可以通过ASCII表来进行统计!例如,统计字母时,可以用if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')),因为大写字母和小写字母不连续,所以应该都要考虑;
而且,题目要求统计空格的个数,所以应该用可以处理空格的gets输入,要加#include <iostream>头文件。
为了可以循环输入多组数据,你要用while语句循环输入;
在这之前,你要先定义4个变量用来统计他们的个数,这4个变量的初值为0,且必须在循环体之内,否则,这4个变量会保留上次得到的结果;
另外,输出的结果也要在循环体之内,还要注意输出的格式,即空格!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论