输入一个字符串,对字符中的各个英文字符,数字,空格进行统计。 按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出

该博客介绍了如何统计一个字符串中英文字符、数字和空格的出现次数,按照出现次数降序排列,如果次数相同则根据ASCII码升序排序。涉及到的知识点包括ASCII码和字符转换、map按value排序、pair和make_pair的使用以及计数法排序和stable_sort排序。
摘要由CSDN通过智能技术生成

题目描述:

输入一个字符串,对字符中的各个英文字符,数字,空格进行统计。按照统计个数由多到少输出统计结果,如果统计的个数相同,则按照ASII码由小到大排序输出。

输入描述:输入一串字符。


输出描述:对字符中的各个英文字符(大小写分开统计),数字,空格进行统计,并按照统计个数由多到少输出,如果统计的个数相同,则按照ASII码由小到大排序输出 。如果有其他字符,则对这些字符不用进行统计。

示例
输入:././aadddcc d dc2././
输出:dc a2


先导知识:

1.ascll 码和 char 字符相互转换

转换方法:直接进行强制类型装换

#include <iostream>
using namespace std;

int main()
{
    int i = 97;                //十进制 97 ascll码对应 char 字符为 ‘a’
    cout << (char)i << endl;
    char j = 'a';
    cout << (int)j << endl;
}
/*=======================================
 函数输出:a
         97
 =======================================*/

2.map 容器中的内容不按 key 排序而按 value 排序

排序方法:将 map 的 key 值和 value 值分别放在 pair 类型的 vector 中,构造比较函数Compare


                
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值