📄 caesar.c
字号:
#include<string.h>
#include<ctype.h>
int n,i,m,k; /*全局变量,n表示密钥*/
int jiami(char x[200],char y[200]) /*加密部分*/
{
printf("***凯撒体制加密***\n");
printf("请输入明文:\n");
scanf("%s",x);
k=strlen(x);
printf("请输入密钥n\n");
scanf("%d",&n);
printf("密钥是n=%d\n",n);
if(n<0)
printf("错误!\n");
if(n>26)
n=n%26;
for(i=0;i<k;i++)
{
if(isupper(x[i]))
x[i]=x[i]+32; /*将明文中的大写字母转化为小写字母*/
if(x[i]+n>122) /*加密*/
y[i]=x[i]+n-26;
else
y[i]=x[i]+n;
}
printf("密文是:%s\n",y);
return(y);
}
int jiemi(char x[200],char y[200]) /*解密部分*/
{
printf("***凯撒体制解密***\n");
printf("请输入密文:\n");
scanf("%s",y);
k=strlen(y);
printf("请输入密钥n\n");
scanf("%d",&n);
printf("密钥是n=%d\n",n);
if(n<0)
printf("错误!\n");
if(n>26)
n=n%26;
for(i=0;i<k;i++)
{
if(isupper(y[i])) /*将密文中的大写字母转化为小写字母*/
y[i]=y[i]+32;
if(y[i]-n<97) /*解密*/
x[i]=y[i]-n+26;
else
x[i]=y[i]-n;
}
printf("明文为%s:\n",x);
return(x);
}
main() /*主函数部分*/
{int s;
char x[200],y[200]; /*x表示明文,y表示密文*/
printf("***凯撒密码体制***\n");
printf("请选择:若要加密请输入1;若要解密请输入0!\n");
scanf("%d",&s);
if(s==1)
jiami(x,y);
if(s==0)
jiemi(x,y);
if(s!=1 && s!=0)
printf("输入错误!\n");
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -