• icode 10 加密的病历单


    小英是药学专业大三的学生,暑假期间获得了去医院药房实习的机会。

    在药房实习期间,小英扎实的专业基础获得了医生的一致好评,得知小英在计算概论中取得过好成绩后,主任又额外交给她一项任务,解密抗战时期被加密过的一些伤员的名单。

    经过研究,小英发现了如下加密规律(括号中是一个“原文 -> 密文”的例子)

    1.  原文中所有的字符都在字母表中被循环左移了三个位置(dec  -> abz)

    如果是x~z,含x和z里(不区分大小写)的字母,他左移三个字母就到了abc,也就是将ASCII-23

    如果是a~w,含a和w里(不区分大小写)的字母,他左移三个字母是正常的,也就是将ASCII+3

    2.  逆序存储(abcd -> dcba )

    按照正常的顺序存的话:s2[i] = s1[i];就可以了

    可是要求是逆序存:len表示长度,i表示目前的位置,输入从0开始(待会要-1)

    s2[len-i-1] = s1[i];就可以了

    3.  大小写反转(abXY -> ABxy)

    s[i] 如果是小写的话:s2[len-i-1] = s1[i]-'a'+'A';从小写变大写

    s[i] 如果是大写的话:s2[len-i-1] = s1[i]-'A'+'a';从大写变小写

    #include<cstdio>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    char a[50], b[50];
    int len = 0;
    
    int main(){
        scanf("%s", a);
        while(a[len] != ''){
            len++;
        }
        for(int i = 0;i < len;i++){
            if(a[i] >= 'x' && a[i] <= 'z'){
                b[len-i-1] = a[i] - 'a' + 'A' - 23;
            }else if(a[i] >= 'a' && a[i] <= 'w'){
                b[len-i-1] = a[i] - 'a' + 'A' + 3;
            }else if(a[i] >= 'X' && a[i] <= 'Z'){
                b[len-i-1] = a[i] + 'a' - 'A' - 23;
            }else if(a[i] >= 'A' && a[i] <= 'W'){
                b[len-i-1] = a[i] + 'a' - 'A' + 3;
            }
        }
        for(int i = 0;i < len;i++){
            printf("%c", b[i]);
        }
        return 0;
    }
  • 相关阅读:
    连接SDE数据库hl3292修改已解决
    ORACLE 10g 安装
    SharpMap相关的一些博客和网站
    Delphi 学习之函数 ②扩展的日期时间操作函数
    Delphi学习之函数 ⑾进制函数及过程
    Delphi学习之函数 ① 扩展的字符串操作函数
    html 初次接触html学习【1】
    Delphi 学习之函数 ③ 扩展的位操作函数
    Delphi学习之函数 ⑨汉字拼音功能函数
    Delphi学习之函数 ④扩展的文件及目录操作函数
  • 原文地址:https://www.cnblogs.com/elisa02/p/13519763.html
Copyright © 2020-2023  润新知