我正在尝试用 C 制作一个简单的加密程序。我的目标是将abc
(可以是任何单词)翻译成123
. 然后乘以2
获取246
,然后再次转换为文本,然后在屏幕上书写bdf
。这是我的算法无法正常工作。我进去abc
了,我得到了cbc
。你能帮助我吗?
int main()
{
int z,o,c,l,i,j,k,*D;
char word[10];
char alfabe[24]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','r','s','t','u','v','y','z','\0'};
printf("enter word");
scanf("%s",word);
c=strlen(word);
printf("has %d letters ", c);
D = (int *) malloc( sizeof(int)*c );
for(i=0;i<c;i++) {
for(j=0;j<26;j++) {
if(word[i]==alfabe[j]) {
D[i]=2*(j+1);
break;
}
}
}
printf("\nlast form before translation ");
for(l=0;l<c;l++) {
printf("%d",D[l]); /*it s just for control */
}
for(z=0;z<c;z++){
printf("%c",alfabe[o]);
o=D[z];
word[z]=alfabe[o] ; break; }
printf("\nnew form of word: ");
for(k=0;k<c;k++) {
printf("%c",word[k]);
}
scanf("%d");
}