📄 kaisajiami.c
字号:
#include "stdio.h"
//加密
char jiami1(char m,int k)
{
m='a'+(m-'a'+k)%26;
return(m);
}
char jiami2(char m,int k)
{
m='A'+(m-'A'+k)%26;
return(m);
}
//解密
char jiemi1(char m,int k)
{
m='a'+(m-'a'+(26-k))%26;
return(m);
}
char jiemi2(char m,int k)
{
m='A'+(m-'A'+(26-k))%26;
return(m);
}
main()
{
char m[10];
int x,k,i;
do
{
printf(" 凯撒密码\n");
printf("1.为字符串加密\n");
printf("2.为字符串解密\n");
printf("0.退出\n");
scanf("%d",&x);
if(x<0||x>2)
{
do{
printf("\n输入有误,请重新输入0-2之间的数");
scanf("%d",&x);
}while(x<0||x>2);
}
switch(x)
{
case 1:
printf("请输入明文:");
for(i=0;m[i]!='\0';i++)
scanf("%s",&m[i]);
printf("请输入密钥:");
scanf("%d",&k);
if(k!=3)
printf("密钥错误\n");
else
for(i=0;m[i]!='\0';i++)
{
if(m[i]>='a'&&m[i]<='z')
m[i]=jiami1(m[i],k);
else
{
if(m[i]>='A'&&m[i]<='Z')
m[i]=jiami2(m[i],k);
}
}
printf("密文为");
for(i=0;m[i]!='\0';i++)
printf("%s",m[i]);break;
case 2:
printf("请输入密文:");
for(i=0;m[i]!='\0';i++)
scanf("%s",&m[i]);
printf("请输入密钥:");
scanf("%d",&k);
if(k!=3)
printf("密钥错误\n");
else
for(i=0;m[i]!='\0';i++)
{
if(m[i]>='a'&&m[i]<='z')
m[i]=jiemi1(m[i],k);
else
{
if(m[i]>='A'&&m[i]<='Z')
m[i]=jiemi2(m[i],k);
}
}
printf("明文为%s:",m[i]);
for(i=0;m[i]!='\0';i++)
printf("%s",m[i]);break;
default: printf("谢谢您的使用,再见!");
}
}while(x>0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -