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

相应的加密、解密公式为:En(x)=(x+n)mod26Dn(x)=(x-n)mod26编写程序,实现对字符串的加密和解密功能,其中移位的值由用户输入。想了很久都没有想好... 相应的加密、解密公式为:
En(x) = (x+n) mod 26
Dn(x) = (x-n) mod 26
编写程序,实现对字符串的加密和解密功能,其中移位的值由用户输入。
想了很久都没有想好代码怎么打,希望高手帮帮忙
展开
 我来答
问地ok
2014-12-19
知道答主
回答量:16
采纳率:0%
帮助的人:11.9万
展开全部
#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;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式