Mark1277 2023-05-31 13:24 采纳率: 100%
浏览 27
已结题

解密(topscoding)

c++写程序:题目描述
亶亶最近在学习计算机密码学,密码学是一门古老而又年轻的学问,计算机科学的兴起给密码学注入了新的活力。在网络、通信技术高度发达的今天,计算机安全和保密问题显得越来越重要。菅董在学习过程中遇到了这样一个任务:解密一份被加密过的文件。经过研究,莹萱发现了加密文件有如下加密规律(括号中是一个“原文->密文”的例子)
(1)原文中所有的字符都在字母表中被循环左移了三个位置(dec ->abz)
(2)逆序存储(abcd -> dcba )
(3)字母大小写反转(abXY ->ABxy)

输入格式
一个加密的字符串。(长度大于1且小于50且只包含大小写字母)

输出格式
输出解密后的字符串。

样例
输入#1
Helloworld
Copy
输出#1
GOURZROOHk
求解!

  • 写回答

4条回答 默认 最新

  • a5156520 2023-05-31 13:31
    关注

    从第三步往前逐步解密字符串就可以了。

    代码如下:

    参考链接:

    #include <iostream>
    #include <string.h>
    using namespace std;
    
    int main(void){
        
        char str[50];
        cin>>str;
    //    cout<<str<<endl;
        
        int len=strlen(str);
        
        // 从第三步开始 解密字符串
        // 大小写转换 
        for(int i=0;i<len;i++){
            if(str[i]>='A'&&str[i]<='Z'){
                str[i]=str[i]+32;
                continue; 
            }
            
            if(str[i]>='a'&&str[i]<='z'){
                str[i] = str[i]-32;
            }
        }
        
    //    cout<<str<<endl;
        
        // 第二步  逆序 
        for(int i=0;i<len/2;i++){
            
            char ch = str[i];
            str[i]=str[len-1-i];
            str[len-1-i]=ch;
        }
        
    //    cout<<str<<endl;
        
        // 第一步 所有字母按字母表顺序右移三位 
        for(int i=0;i<len;i++){
            
            char ch = str[i];
            // http://ascii.wjccx.com/
            if((ch>='a'&&ch<'x')||(ch>='A'&&ch<'X')){
                ch=ch+3;
                str[i]=ch;    
                continue;
            }
            
            if((ch>='x'&&ch<='z')||(ch>='X'&&ch<='Z')){
                ch=ch-23;
                str[i]=ch;    
            } 
            
            
        }
        
        // 打印解密后的字符串 
        cout<<str;
        
        return 0;
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 6月8日
  • 已采纳回答 5月31日
  • 创建了问题 5月31日

悬赏问题

  • ¥100 对接美团闪购医药接口相关问题
  • ¥15 嵌入式软件电子烟开发
  • ¥15 职场 Excel 查重问题
  • ¥20 multisim方波发生电路产生的波形异常,学校没讲模电就留了实验qwq
  • ¥15 求怎么用idea2021.3.2创建web项目并配置tomcat
  • ¥100 or-tools的相关问题
  • ¥15 有可能用平板通过拓展坞来烧录程序吗(keil5的那种)
  • ¥15 状态图的并发态问题咨询
  • ¥15 PFC3D,plot
  • ¥15 VAE模型编程报错无法解决