凯撒密码(还原明文)

一开始学循环的时候确实对于凯撒密码捉弄不透,今日回看到还挺简单。确实熟能生巧。

#include<stdio.h>
int main()
{
    
    
	char ch;
	int key;

	printf("输入移位值: ");
	scanf("%d",&key);
	fflush(stdin);

	printf("输入密文: ");
	ch=getchar();
	printf("明文为: ");
	while(ch!='\n')
	{
    
    
		if(ch>='A'&&ch<='Z')
		{
    
    
			printf("%c",(ch-'A'-key+26)%26+'A');
		}
		else if(ch>='a'&&ch<='z')
		{
    
    
			printf("%c",(ch-'a'-key+26)%26+'a');
		}
		else if(ch>='0'&&ch<='9')
		{
    
    
			printf("%c",(ch-'0'-key+10)%10+'0');
		}
		else
		{
    
    
			printf("%c",ch);
		}
		ch=getchar();
	}
	printf("\n");
	return 0;
}

(ch-‘A’-key+26)%26+‘A’
至于这种就是破解的算法
结构简单,算法还挺难想。
while循环配合的getchar当gets使用

猜你喜欢

转载自blog.csdn.net/yooppa/article/details/114898269