C++面试向学习(简称:刷题)2.计算某字符出现次数


前言

一个菜鸟的学习经历,题目出自牛客网的华为机试。答案和解题思路借鉴了许多评论区的大佬们的代码。

提示:以下是本篇文章正文内容,下面案例可供参考

一、题目描述

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

数据范围:1≤n≤1000
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。

输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)

示例:

输入:
ABCabc
A
输出:
2

二、解题思路

这道题目没有太多的解题方法,无非就是通过ASCII码来比较,但是有许多陷阱要特别注意。

1.由于不分大小写,所以要格外注意使用十进制ASCII码时不仅+32还要-32
2.你以为这就完了吗?
虽然
0-9”的十进制ASCII码是48-57
A-Z”的十进制ASCII码是65-90
a-z”的十进制ASCII码是97~122
但是
因为48+32=60,57+32=89,所以“0-9”的十进制ASCII码+32与“A-Z”的十进制ASCII码有重复部分。也就是说此处还得进行判断。
3.因为存在空格,所以在获取字符串时不要用cin(在上一题中讲过)。建议使用getline()

错误代码如下(示例):

#include <iostream>
#include <string>
using namespace std;
int main()
{
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值