/*
本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。
欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。
我是一名有诗人气质的网络安全工程师
期待与你的思想交流碰撞出智慧的花火
水木清华
2020-03-15
简单密码
*/
#include<iostream>
using namespace std;
//密码(口令)变换的函数接口
string Password_Transformation(string str)
{
    //字典法:考虑两个字典,一个是明文字典 a[],另一个是明文对应的加密字典 b[]。
    //然后采用字典元素对应的方法,做加密或解密,实现方法为“字典下标对应索引以及元素匹配”。
    char a[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"}; //非必要的参照字典
    char b[] = {"bcdefghijklmnopqrstuvwxyza222333444555666777788899990123456789"}; //字符输出对应字典
    int len = str.size();
    for (int i = 0; i < len; i++)
    {
        //小写字母转数字
        if ((str[i] >= 'a') && (str[i] <= 'z'))
        {
            str[i] = b[str[i] - 'a' + 26];
        }
        //大写字母转小写
        if ((str[i] >= 'A') && (str[i] <= 'Z'))
        {
            str[i] = b[str[i] - 'A']; 
        }
        //数字不用转换,保持原样
    }
    return  str;
}
//主函数
int main()
{
    string str;
    while (getline(cin,str))
    {
        cout << Password_Transformation(str) << endl;
    }
    return 0;
}
//笨方法:为每一种情况写一个 if 判别语句,对应输出结果即可,