题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
#include <stdio.h>
#include <string.h>
void lock(char *str, int len){
for(int i = 0; i < len; i++){
if((str[i] >= 'a' && str[i] <= 'z')){
if(str[i] == 'z')
str[i] = 'A';
else
str[i] = str[i] + 1 - 32;
}
else if((str[i] >= 'A' && str[i] <= 'Z')){
if(str[i] == 'Z')
str[i] = 'a';
else
str[i] = str[i] + 1 +32;
}
else if((str[i] >= '0' && str[i] <= '9')){
if(str[i] == '9')
str[i] = '0';
else
str[i] = str[i] + 1;
}
}
}
void unlock(char *str, int len){
for(int i = 0; i < len; i++){
if((str[i] >= 'a' && str[i] <= 'z')){
if(str[i] == 'a')
str[i] = 'Z';
else
str[i] = str[i] - 1 - 32;
}
else if((str[i] >= 'A' && str[i] <= 'Z')){
if(str[i] == 'A')
str[i] = 'z';
else
str[i] = str[i] - 1 +32;
}
else if((str[i] >= '0' && str[i] <= '9')){
if(str[i] == '0')
str[i] = '9';
else
str[i] = str[i] - 1;
}
}
}
int main(){
char mi[1002], fmi[1002];
memset(mi, '\0', sizeof(mi));
memset(fmi, '\0', sizeof(mi));
scanf("%s", mi);
int len = strlen(mi);
for(int i = 0; i < len; i++){
if((mi[i] >= 'a' && mi[i] <= 'z') || (mi[i] >= 'A' && mi[i] <= 'Z') || (mi[i] >= '0' && mi[i] <= '9')){
continue;
}
else
return 0;
}
lock(mi, len);
printf("%s\n", mi);
scanf("%s", fmi);
int len1 = strlen(fmi);
for(int i = 0; i < len1; i++){
if((fmi[i] >= 'a' && fmi[i] <= 'z') || (fmi[i] >= 'A' && fmi[i] <= 'Z') || (fmi[i] >= '0' && fmi[i] <= '9')){
continue;
}
else
return 0;
}
unlock(fmi, len1);
printf("%s", fmi);
return 0;
}
