C语言凯撒加密是一种移位替代加密算法,即将字母表A-Z向左移位,然后用移位后的字母表替原来的明文得到密文

相应的加密、解密公式为:
En(x) = (x+n) mod 26
Dn(x) = (x-n) mod 26
编写程序,实现对字符串的加密和解密功能,其中移位的值由用户输入。
想了很久都没有想好代码怎么打,希望高手帮帮忙

#include <iostream>
#include <string>

using namespace std;

int main()
{
    string code;//储存初始字符串
    string d_code;//加密后的字符串
    int i;
    int n;         //移位的个数
    cout<<"Enter the string "<<endl;
    cin>>code;
    cout<<"how many step do you want to move ?"<<endl;
    cin>>n;
    for(i=0;i<code.size();++i)
    {
        if(int(code[i])>97)
        {
            if(int(code[i])+n>122)
              d_code[i]=int(code[i])+n-26;
            else
                d_code[i]=int(code[i])+n;
        }
        else if(int(code[i])+n>90)
            d_code[i]=char(int(code[i])+n-26);
        else
            d_code[i]=char(int(code[i]+n));
    }
    for(i=0;i<code.size();++i)
    {
        cout<<d_code[i];
    }
    cout<<endl;
    cout<<"Code = "<<code<<endl;
    return 0;
}

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答