C++编程之字符出现次数问题

文章提供了一个C++程序,该程序使用getline和cin从用户输入读取字符串和字符,然后计算字符串中给定字符(不区分大小写)的出现次数。程序通过检查字符是否在ASCII表中的小写或大写字母范围内来处理大小写,并使用哈希概念(尽管未明确提及)来计数字符。

问题

输入一个由字母、数字和空格组成的字符串,输入一个字符,然后输出输入字符串中该字符(不区分大小写字母)的出现次数。
其中第一行输入字符串,第二行输入一个字符(保证该字符不为空格),输出字符串中含有该字符的个数。
例如:
在这里插入图片描述

知识点

知识点:字符串、哈希

问题分析:

我们需要在一个由字母、数字和空格组成的字符串中找到一个字符(不区分大小写)出现的次数,首先输入上,由于包含空格,我们用getline函数避免空格影响,然后我们常规的去依次对比字符串和指定字符,此处注意考虑英文大小写问题,判断其出现的次数即可。

代码

#include <iostream>
using namespace std;

int main() {
    string a;
    char b;
    getline(cin,a);
    cin>>b;
    int n=a.length();
    int count=0;
    while(n--)
    {
        if(a[n] >= 'a' && a[n] <= 'z'){
            if(a[n]==b||a[n]-32==b)
                count++;
        }

        else if(a[n] >= 'A' && a[n] <= 'Z'){
            if(a[n]==b||a[n]+32==b)
                count++;
        }
        else if(a[n]==b)
                count++;
    }
    cout<<count<<endl;
    return 0;
}

结果

运行时间占用内存
3ms312KB

拓展——cin与getline

在 C++ 中,cin 和 getline 都是用于从标准输入读取数据的函数。
cin 通常用于读取基本数据类型,如整数、浮点数和字符等,它会忽略输入缓冲区中的空白字符(如空格、制表符和换行符)并将其留在缓冲区中。相反,getline 用于读取一行文本,包括空格和其他特殊字符,直到遇到换行符或文件结尾。
总结:cin会以“ ”作为输入结束点而getline直到遇到换行符或文件才会结尾。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值