题解 | #字符串加密#
字符串加密
http://www.nowcoder.com/practice/e4af1fe682b54459b2a211df91a91cf3
#include<stdio.h>
#include<string.h>
int main(){
char key[100];
int i,j,k;
while( scanf("%s",&key) != EOF ){
int len1,len2;
int flag;
char word[100];
scanf("%s",&word);
len1=strlen(key);
//去重key
for(i=1;i<len1;i++){
for(j=0;j<i;j++){
if(key[i]==key[j]){
for(k=i;k<len1-1;k++)
key[k]=key[k+1];
len1--;
i--;
}
}
}
//补充生成新的key
for(i=0;i<26;i++){
flag=1;
for(j=0;j<len1;j++){
if(key[j]=='a'+i)
flag=0;
}
if(flag==1){
key[len1]='a'+i;
len1++;
}
}
//开始转换明文
len2=strlen(word);
for(i=0;i<len2;i++){
for(j=0;j<26;j++){
if(word[i]=='a'+j){
word[i]=key[j];
break;
}
}
}
//输出新的密文
for(i=0;i<len2;i++)
printf("%c",word[i]);
printf("\n");
}
}