나는 C로 간단한 암호화 프로그램을 만들려고합니다. 제 목표는 으로 abc
(모든 단어가 될 수 있음)을 번역하는 것입니다. 그런 다음 2
을 곱하고 246
을 얻은 다음 다시 텍스트로 변환 한 다음 bdf
화면에 씁니다. 여기 올바르게 작동하지 않는 알고리즘이 있습니다. 나는 abc
을 입력했고 나는 cbc
을 얻었다. 나 좀 도와 줄 수있어?C - 암호화 알고리즘
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");
}
영어로 26 개의 알파벳과 ''\ 0 ''이 있는데, 왜 24의 문자 배열입니까? – vidit
'o'가 초기화되기 전에'alfeabe [o]'를 출력하고'D [z]'를 2로 나누고 어딘가를 빼서 "암호화"를 뒤집어 놓아야합니다. – mgiuffrida
당신은'q'-ist와'w'-ist입니다. 어떻게 감히 그렇게 무례합니까? 그리고'x'에 대해 저를 시작시키지 마십시오 .... –