3.5
简单加密:
对字母的加密规则如下:
a变F
b变G
c变H
...
v变A
w变B
x变C
y变D
z变E
A变f
B变g
C变h
...
V变a
W变b
X变c
Y变d
Z变e
其余字符不变。
比如明文是:I love you! 则加密后的密文为:n QTAJ DTZ!
请你编写程序,对于任意的一个字符串明文进行加密,输出密文,然后再对密文进行解密,输出明文。
思路:字符按ASCII码进行位移。只要对照ASCII码表就知道应该位移多少了,然后从一个数组复制到另一个数组即可。
char a[50]="What are you doing, Mr. Li?";
char b[50]="";
int i;
puts(a);//原始明文
//加密
for(i=0 ; i<strlen(a); i++)
{
if(a[i]>='a' && a[i]<='u')
b[i]=a[i]-27;
else if(a[i]>='v' && a[i]<='z')
b[i]=a[i]-53;
else if(a[i]>='A' && a[i]<='U')
b[i]=a[i]+37;
else if(a[i]>='V' && a[i]<='Z')
b[i]=a[i]+11;
else
b[i]=a[i];
}
puts(b);//密文
//解密
for(i=0 ; i<strlen(b); i++)
{
if(b[i]>='f' && b[i]<='z')
a[i]=b[i]-37;
else if(b[i]>='a' && b[i]<='e')
a[i]=b[i]-11;
else if(b[i]>='F' && b[i]<='Z')
a[i]=b[i]+27;
else if(b[i]>='A' && b[i]<='E')
a[i]=b[i]+53;
else
a[i]=b[i];
}
puts(a);//解密后的明文