题解 | #字符串加密#
字符串加密
https://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include <stdio.h> int main() { char JM[100],BJM[100]; int jm=0,bjm=0,i,j,k,b; scanf("%s",JM); scanf("%s",BJM); while(JM[jm]!=0) jm++; while(BJM[bjm]!=0) bjm++; //全部大写化 for(i=0;i<jm;i++) if(JM[i]>95) JM[i]=JM[i]-32; //去重 for(i=0;i<jm;i++) for(j=i+1;j<jm;j++) if(JM[i]==JM[j]){ for(k=j;k<jm;k++) JM[k]=JM[k+1]; j--; jm--; } //填写缺少字母 for(i=jm;i<26;i++) for(j=65;j<91;j++){ b=0; for(k=0;k<i;k++) if(JM[k]==j) b=1; if(b==0) { JM[i]=j; break; } } //复制小写字母 for(i=0;i<26;i++) JM[i+26]=JM[i]+32; //建立正常对应表 char ZJM[52]; for(i=0;i<26;i++) ZJM[i]=i+65; for(i=26;i<52;i++) ZJM[i]=i-26+97; //开始编译 for(i=0;i<bjm;i++) for(j=0;j<52;j++) if(BJM[i]==ZJM[j]){ BJM[i]=JM[j]; break; } //输出 printf("%s",BJM); return 0; }