【FOJ】Problem 1406 凯撒密码

Problem 1406 凯撒密码.

题意

每个英文字母都被英文字母表中该字母后第三个位置的字母替换
例如,A->D, B->E, X->A, z->c,其他不变

思路

对输入的字母,-3,如果超出字母的范围则+26再-3

代码

#include<cstdio>
#include<string.h>
using namespace std;

int main(){
	char in[100];
	while(scanf("%[^\n]%*c", in)!=EOF){
		for(int i=0; i<strlen(in); i++){
			if((in[i]>='D' && in[i]<='Z') || (in[i]>='d' && in[i]<='z'))
				in[i] = in[i] - 3;
			else if((in[i]>='A' && in[i]<='C') || (in[i]>='a' && in[i]<='c'))	//我太蠢了第一遍这里写if,导致f输出z还一直找不到原因
				in[i] = in[i] + 23;
			printf("%c", in[i]);
		}
		printf("\n");
	}
	return 0;
}
发布了46 篇原创文章 · 获赞 0 · 访问量 461

猜你喜欢

转载自blog.csdn.net/qq_44531167/article/details/105442814