题解 | #字符串加解密#
字符串加解密
https://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a
//OJ题目没有特意进行函数命名,代码习惯良好的可以用ENC和DEC等进行加解密函数命名 #include <stdio.h> #include<string.h> char* In(char arr[1000],int sz1)//加密 { int i=0; for(i=0;i<sz1;i++) { if(arr[i]>='a'&&arr[i]<'z') { arr[i]-=31; } else if(arr[i]=='z') { arr[i]-=57; } else if(arr[i]>='A'&&arr[i]<'Z') { arr[i]+=33; } else if(arr[i]=='Z') { arr[i]+=7; } else if(arr[i]>='0'&&arr[i]<='9') { arr[i]=(arr[i]+1-48)%10+48; } } arr[sz1]='\0'; return arr; } char* Out(char arr[1000],int sz2)//解密 { int i=0; for(i=0;i<sz2;i++) { if(arr[i]>'a'&&arr[i]<='z') { arr[i]-=33; } else if(arr[i]=='a') { arr[i]-=7; } else if(arr[i]>'A'&&arr[i]<='Z') { arr[i]+=31; } else if(arr[i]=='A') { arr[i]+=57; } else if(arr[i]>='0'&&arr[i]<='9') { arr[i]=((arr[i]-48)+10-1)%10+48; } } arr[sz2]='\0'; return arr; } int main() { char arr1[1000],arr2[1000]; gets(arr1); gets(arr2); int sz1=strlen(arr1),sz2=strlen(arr2); char* p1=In(arr1,sz1),*p2=Out(arr2,sz2); printf("%s\n%s",p1,p2); return 0; }