//凯撒密码 加密解密
//加密公式 f(a)=(a+3) mod 26
//解密公式 f(a)=(a+23) mod 26
#include <iostream.h>
#include <string.h>
void psw(char *strI,int t=0); //加密公式函数,t=0加密 t=1解密
void unpsw(char *strI); //解密公式函数
char getW(int i); //字母表
void main()
{
char str[80];
int i;
cout<<"1.加密/n";
cout<<"2.解密/n";
cout<<"3.退出/n";
cout<<"选择:";
cin>>i;
cout<<endl;
switch(i)
{
case 1:
cout<<"请输入要加密的字符串:";
cin>>str;
psw(str);
cout<<endl;
break;
case 2:
cout<<"请输入要解密的字符串:";
cin>>str;
psw(str,1);
cout<<endl;
break;
default:
break;
}
}
void psw(char *strI,int t)
{
char *p1;
int i=0,k,s;
s=t;
p1=strI;
while(strI[i]!='/0')
{
k=strI[i]-97;
if(s)
{
cout<<getW((k+3)%26);
}
else
{
cout<<getW((k+23)%26);
}
i++;
}
cout<<endl;
}
char getW(int i)
{
char W[26];
char h1;
int j;
j=i;
h1=97;
for(i=0;i<26;i++,h1++)
{
W[i]=h1;
}
return W[j];
}