HZNUOJ 2058 凯撒密码

题目

描述

大写字母偏移量为3,小写字母偏移量为13

输入

多组输入,每行为一组,当输入一行为“!"时输入结束。字符串长度不超过50,且均为字母。

输出

输出加密结果。

样例:

输入
abc
!
输出
nop

分析

大写字母后移3位,即 A–>D,W–>Z,Y–>B,
小写字母后移13位,即 a–>n,m–>z,o–>b。

代码实现

大写:((int)当前字母-'A'+3)%26,此时a=1,b=2,z=0。然后将z改为26,再加上65(A的ascii码)。
小写同理,将3改为13。

AC 代码

#include<stdio.h>
#include<string.h>
int main()
{
	char s[61]={0};
	while(1)
	{
		gets(s);
		if(s[0]=='!')
			break;
		for(int i=0;i<strlen(s);i++)
		{
			if(s[i]>='A'&&s[i]<='Z') 
			{
				int a=((int)s[i]+3-64)%26;
				if(a==0)
					a=26;
				printf("%c",(int)'A'+a-1);
			}
			if(s[i]>='a'&&s[i]<='z') 
			{
				int a=((int)s[i]+13-96)%26;
				if(a==0)
					a=26;
				printf("%c",(int)'a'+a-1);
			}
		}
		printf("\n");
	}
 } 
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页