IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> HJ21 简单密码(c++) -> 正文阅读

[C++知识库]HJ21 简单密码(c++)

题目链接:简单密码_牛客题霸_牛客网

注意点:

1.switch语句

2.考虑哈希表的实现,推荐好:c++ map与unordered_map区别及使用_别说话写代码的博客-CSDN博客_unordered_map

3.小写字母转数字,推荐采用unordered_map来存放映射关系;

大写字母转小写,可以直接加32

4.isalpha()函数:C 库函数 – isalpha() | 菜鸟教程

方法一:

#include <iostream>
using namespace std;

int main()
{
	
	string str;
	while (cin >> str)
	{
		for(int i = 0; i < str.size(); ++i )
		{
			switch (str[i]) {
				case 'A'...'Y' : str[i] += 33; break;
				case 'Z' : str[i] = 'a' ;break;
				case 'a' ... 'c': str[i] = '2'; break;
            	case 'd' ... 'f': str[i] = '3'; break;
            	case 'g' ... 'i': str[i] = '4'; break;
            	case 'j' ... 'l': str[i] = '5'; break;
            	case 'm' ... 'o': str[i] = '6'; break;
            	case 'p' ... 's': str[i] = '7'; break;
            	case 't' ... 'v': str[i] = '8'; break;
            	case 'w' ... 'z': str[i] = '9'; break;
            	default: break;
			}
		
		}
		cout << str <<endl; 
	}
	return 0;
}

方法二:

#include <iostream>
#include <unordered_map>
#include <ctype.h>
using namespace std;

int main()
{
	unordered_map<char,char> m;
	m['a'] = m['b'] =m['c'] ='2';
	m['d'] = m['e'] = m['f'] ='3';
	m['g'] = m['h'] = m['i'] ='4';
	m['j'] = m['k'] = m['l'] ='5';
	m['m'] = m['n'] = m['o'] ='6';
	m['p'] = m['q'] = m['r'] = m['s'] ='7';
	m['t'] = m['u'] = m['v'] ='8';
	m['w'] = m['x'] = m['y'] = m['z'] = '9';
    m['Z'] = 'a';
	string str;
	while (cin >> str)
	{
		for(int i = 0; i < str.size(); ++i )
		{
			//两个条件的if不可以反 
			if(str[i] >= 'A' && str[i] < 'Z') 
			{
				str[i] = str[i] - 'A' + 'a' + 1;			
			}
			else if (isalpha(str[i])) 
			{
				str[i] = m[str[i]];	
			}	
		}
		cout << str <<endl; 
	}
	return 0;
}
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-24 00:18:35  更:2022-03-24 00:19:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:06:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码