华为机试HJ2:计算某字母出现次数

简介: 华为机试HJ2:计算某字母出现次数

题目描述:

写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字母,然后输出输入字符串中该字母的出现次数。不区分大小写,字符串长度小于500。

输入描述:

第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字母。

输出描述:

输出输入字符串中含有该字符的个数。

示例:

输入:

ABCabcA

输出:

2

解题思路:

输入一个字符串和字母,分析该字母在字符串中出现的次数,最简单的方法就是遍历一遍,在ASCII表里,大小写之间差了32,判断的时候除了判断字符本身,也判断该字符加减32的情况,就可以统计出出现次数,但这仅仅是基于字符串中只有字母数字和空格。

测试代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
    // 输入字符串
    string s;
    getline(cin,s);
    // 输入字符
    char test;
    cin>>test;
    int number=0;
    int size=s.length();
    for(int i=0;i<size;i++)
    {
        // 考虑大小写情况
        if(s[i]==test||s[i]==test-32||s[i]==test+32)
            number++;
    }
    cout<<number<<endl;
    return 0;
}

之前使用include<string.h>,有同学反映会报错,确实如此,目前已经修正为include<string>。


非常感谢提出异议的同学,能看出来你们有认真刷题和思考,这是非常好的学习习惯。


希望你们能坚持下去,把华为机试这套题目刷完,如果能掌握华为机试,可以说你的C++水平已经过了入门级别了,后面可以结合一些实战场景或项目,来进一步提高自己的编程能力,加油!


PS:编程只是工具,如果想提高自己的核心竞争力,专业知识和技能才是你战胜他人、杜绝内卷的最佳武器,数学更是重要的基石。

相关文章
|
容器
华为机试HJ60:查找组成一个偶数最接近的两个素数
华为机试HJ60:查找组成一个偶数最接近的两个素数
华为机试HJ106:字符逆序
华为机试HJ106:字符逆序
127 1
华为机试HJ84:统计大写字母个数
华为机试HJ84:统计大写字母个数
|
容器
华为机试HJ10:字符个数统计
华为机试HJ10:字符个数统计
|
存储 容器
华为机试HJ23:删除字符串中出现次数最少的字符
华为机试HJ23:删除字符串中出现次数最少的字符
|
容器
华为机试HJ92:在字符串中找出连续最长的数字串
华为机试HJ92:在字符串中找出连续最长的数字串
华为机试HJ86:求最大连续bit数
华为机试HJ86:求最大连续bit数
华为机试HJ91:走方格的方案数
华为机试HJ91:走方格的方案数
139 0
华为机试HJ58:输入n个整数,输出其中最小的k个
华为机试HJ58:输入n个整数,输出其中最小的k个