华为OJ——输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

来源:互联网 发布:保利科技 工作 知乎 编辑:程序博客网 时间:2024/04/30 00:13

输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数

题目描述

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

    /**
     * 统计出英文字母字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getEnglishCharCount(String str)
    {
        return 0;
    }
    
    /**
     * 统计出空格字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 空格的个数
     */
    public static int getBlankCharCount(String str)
    {
        return 0;
    }
    
    /**
     * 统计出数字字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getNumberCharCount(String str)
    {
        return 0;
    }
    
    /**
     * 统计出其它字符的个数。
     * 
     * @param str 需要输入的字符串
     * @return 英文字母的个数
     */
    public static int getOtherCharCount(String str)
    {
        return 0;
    }

输入描述:

输入一行字符串,可以有空格

输出描述:

统计其中英文字符,空格字符,数字字符,其他字符的个数

输入例子:

1qazxsw23 edcvfr45tgbn hy67uj m,ki89ol.\\/;p0-=\\][

 

输出例子:

26

3

10

12

解答代码:

#include<iostream>#include<fstream>#include<string>#include<cstring>#include<cctype>#include<algorithm>#include<cstdlib>using namespace std;int main(){    //freopen("input.txt","r",stdin);    int countEnglish=0,countSpace=0,countData=0,countOther=0;    char s[1024];    int i=0;    while(cin.getline(s,1024))    {        countEnglish=0,countSpace=0,countData=0,countOther=0;        int length=strlen(s);        for(i=0; i<length; i++)        {            if(isalpha(s[i]))                countEnglish++;            else if(isdigit(s[i]))                countData++;            else if(s[i]==' ')                countSpace++;            else                countOther++;        }        cout<<countEnglish<<endl<<countSpace<<endl<<countData<<endl<<countOther<<endl;    }    return 0;}

0 0