题目描述:
小明设计了一个加密程序,对于任意输入的一个字符串,运行程序后会输出相应的密文。其中,字符串加密算法如下:
(1)只针对英文字符和数字进行加密,其余字符保持不变;
(2)将原文中的小写字母转换成大写字母;
(3)根据第2步所得结果,若是英文字符,则逐个后移4位(例如“A"-->"E","Z"-->"D");若是数字,则逐个前移2位(例如:3:-->“1,“1”-->“9”)。
要实现上述要求的某程序如下,请完善以下代码。
输入格式:
一行字符串。
输出格式:
一行加密后的字符串。
样例输入:
AZ31
样例输出:
ED19
代码如下:
#include<bits/stdc++.h>
using namespace std;
int main(){
char a[100001];
cin.getline(a,100001);
int s=strlen(a);
for(int i=0;i<s;i++){
if(a[i]>='a'&&a[i]<='z'){
a[i]=a[i]-32;
}
if(a[i]>='A'&&a[i]<='Z'){
if(a[i]>='W'&&a[i]<='Z'){
a[i]=a[i]-22;
}else{
a[i]=a[i]+4;
}
}
else if(a[i]>='0'&&a[i]<='9'){
if(a[i]>='0'&&a[i]<='1'){
a[i]=a[i]+8;
}else{
a[i]=a[i]-2;
}
}
}
for(int i=0;i<s;i++){
cout<<a[i];
}
return 0 ;
}