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

题目

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

    /**
     * 统计出英文字母字符的个数。
     * 
     * @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

思路

利用现有的函数可以很快做出判断,只需要把字符串进行收入然后做相应的判断即可。
在处理其他字符的个数时可以利用已知的信息。(但是这样在正常的写代码过程中会存在bug)

代码

#include<iostream>
#include<string>
using namespace std;

static int counterChar=0;
static int counterDigital=0;
static int counterBlank=0;
static int counterOther=0;
/**
* 统计出英文字母字符的个数。
* @param str 需要输入的字符串
* @return 英文字母的个数
*/
static int getEnglishCharCount(string str)
{
    counterChar=0;
    for(int i=0;i<str.length();++i){
        if(islower(str[i])||isupper(str[i])){
            counterChar++;
        }
    }
    return counterChar;
}

/**
 * 统计出空格字符的个数。
 *
 * @param str 需要输入的字符串
 * @return 空格的个数
 */
static int getBlankCharCount(string str)
{
    counterBlank=0;
    for(int i=0;i<str.length();++i){
        if(str[i]==' '){
            counterBlank++;
        }
    }
    return counterBlank;
}
/**
 * 统计出数字字符的个数。
 * @param str 需要输入的字符串
 * @return 英文字母的个数
 */
static int getNumberCharCount(string str)
{
    counterDigital=0;
    for(int i=0;i<str.length();++i){
        if(isdigit(str[i])){
            counterDigital++;
        }
    }
    return counterDigital;
}

/**
 * 统计出其它字符的个数。
 * @param str 需要输入的字符串
 * @return 英文字母的个数
 */
static int getOtherCharCount(string str)
{
    counterOther=str.length()-counterBlank-counterChar-counterDigital;
    return counterOther;
}
int main()
{
    string inputStr ="";
    getline(cin,inputStr);
    cout<<getEnglishCharCount(inputStr)<<endl;
    cout<<getBlankCharCount(inputStr)<<endl;
    cout<<getNumberCharCount(inputStr)<<endl;
    cout<<getOtherCharCount(inputStr)<<endl;
    return 0;
}

你的名字
很喜欢这部电影!!!!!手动点赞

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用Python编程语言来实现这个功能,代码如下: ```python s = input("请输入一行字符:") # 获取用户输入的字符串 letters = # 统计英文字母个数 spaces = # 统计空格个数 digits = # 统计数字个数 others = # 统计其他字符个数 for c in s: # 遍历字符串中的每个字符 if c.isalpha(): # 如果是英文字母 letters += 1 elif c.isspace(): # 如果是空格 spaces += 1 elif c.isdigit(): # 如果是数字 digits += 1 else: # 否则是其他字符 others += 1 print("英文字母个数:", letters) print("空格个数:", spaces) print("数字个数:", digits) print("其他字符个数:", others) ``` 运行程序后,输入一行字符,程序会输字符串中英文字母空格数字和其他字符个数。例如,输入字符串"Hello, 123 world!",程序会输: ``` 英文字母个数: 10 空格个数: 2 数字个数: 3 其他字符个数: 2 ``` ### 回答2: 这道题可以用Python来实现。我们可以通过一个循环来遍历输入的字符串,再使用Python内置的字符判断函数来判断字符类型,最后将统计结果输。 具体的代码如下: ```python str = input("请输入一行字符:") letters = 0 # 字母数量 spaces = 0 # 空格数量 digits = 0 # 数字数量 others = 0 # 其他字符数量 for c in str: # 遍历字符串中的每一个字符 if c.isalpha(): # 判断是否为字母 letters += 1 elif c.isspace(): # 判断是否为空格 spaces += 1 elif c.isdigit(): # 判断是否为数字 digits += 1 else: # 其他字符 others += 1 print("字母数量为:", letters) print("空格数量为:", spaces) print("数字数量为:", digits) print("其他字符数量为:", others) ``` 通过这段代码,我们可以输入任意一行字符,并统计其中字母数量、空格数量、数字数量和其他字符数量。相信大家可以看懂这段代码的实现原理,希望对大家有所帮助。 ### 回答3: 题目要求统计输入的一行字符英文字母空格数字和其他字符个数。 首先,我们需要定义变量来存储这些个数,如英文字母数量letter_count,空格数量space_count,数字数量digit_count和其他字符数量other_count,初始值设为0。然后,我们通过遍历输入的字符串中的每一个字符,利用ASCII码表判断它是哪一类字符。 对于字母:如果它的ASCII码在65~90或97~122之间,就是英文字母,把letter_count加1; 对于数字:如果它的ASCII码在48~57之间,就是数字,把digit_count加1; 对于空格:如果它是空格字符(ASCII码为32),则把space_count加1; 对于其他字符:除了以上情况外,都是其他字符,把other_count加1。 代码如下: ``` #include <stdio.h> #include <ctype.h> //用于判断字符类型的函数 int main() { char str[1000]; //存储输入的字符串 int letter_count = 0, space_count = 0, digit_count = 0, other_count = 0; //初始化 printf("请输入一行字符:\n"); fgets(str, 1000, stdin); //利用fgets函数读入一行字符串,包括空格 for (int i = 0; str[i] != '\0'; i++) //遍历字符串的每一个字符 { char ch = str[i]; if (isalpha(ch)) //判断是否为英文字母 letter_count++; else if (ch == ' ') //判断是否为空格 space_count++; else if (isdigit(ch)) //判断是否为数字 digit_count++; else //其他字符 other_count++; } printf("输入的字符串中,英文字母个数为:%d,空格个数为:%d,数字个数为:%d,其他字符个数为:%d", letter_count, space_count, digit_count, other_count); return 0; } ``` 这样,我们就可以统计输入的一行字符串中英文字母空格数字和其他字符个数

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值