字符串14:凯撒加密(升级版);字符串15:恺撒算法解密

字符串14:凯撒加密(升级版)

输入一个字符串str,并对字符串进行加密。加密规则:大写字母和小写字母后移5位(a,b,c......x,y,z加密为f,g,h......c,d,e; 对A,B,C......X,Y,Z加密为F,G,H......C,D,E),其他字符不变。字符串长度小于40。

输入格式:

输入一行字符串str

输出格式:

输出加密后的字符串并换行

输入样例:

Windows XP 2001~

输出样例:

Bnsitbx CU 2001~
#include<stdio.h>
int main()
{
    char str[41];
    int i;
    gets (str);
    for(i=0;str[i]!='\0';i++)
    {
        if(str[i]>='a'&&str[i]<='z')
            str[i]=(str[i]-'a'+5)%26+'a';
        if(str[i]>='A'&&str[i]<='Z')
            str[i]=(str[i]-'A'+5)%26+'A';}
    printf("%s\n",str);
    return 0;
}

 字符串15:恺撒算法解密

凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照偏移量N进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推X将变成A,Y变成B,Z变成C。现在,给你一个字符串str(经过凯撒加密后的字符串),并且告诉你偏移量为n。请你把加密的字符串解密并输出。

输入格式:

输入共一行,包括加密后的字符串str(字符串中只含有大小写字母,且串长不超过30)和偏移量 n(注意:str和n之间空格隔开)

输出格式:

解密后的字符串。

输入样例:

Kcocuvwfgpv 2

输出样例:

Iamastudent

(注意第一个字母为大写的i)

#include <stdio.h>
#include <string.h>
int main()
{
    char str[31];
    int n,i;
    scanf("%s %d",str,&n);
    //int len=strlen(str);//取字符串长度
    for(i=0;str[i]!='\0';i++)
    {
        if(str[i]>='A'&&str[i]<='Z')
            str[i]=(str[i]-'A'+26-n%26)%26+'A';
        else if(str[i]>='a'&&str[i]<='z')
            str[i]=(str[i]-'a'+26-n%26)%26+'a';
    }
    printf("%s\n", str);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值