#include <stdio.h>
#include<string.h>
int main(void)
{
int a=0,i;
char b[200],c[200],f;
while(1)
{
fflush(stdin);
printf(" 실행할 프로그램을 선택하세요 ");
printf("암호화=E ");
printf("복호화=D ");
printf("종료=Q ");
scanf("%c",&f);
fflush(stdin);
switch(f)
{
case'E':
case'e':
printf("시저 암호화 프로그램 ");
printf("약속한 키값(Offset)은 얼마입니까?(ex)3,4,5..etc): ");
scanf("%d",&a);
printf("plain text를 입력하시오: ");
scanf("%s",b);
if(a>26)
a=a % 26; //0<=key<26.
for(i=0;i<strlen(b);i++)
{
if(b[i]==' ')
{
continue;
}
else
{
if(b[i]>= 'x')
{
b[i]=b[i]-26;
}
b[i]=b[i]+a;
}
}
printf("Chiper Text는 %s입니다 ",b);
a=0;
i=0;
break;
case'D':
case'd':
printf("시저 복호화 프로그램 ");
printf("약속한 키값(Offset)은 얼마입니까?(ex)3,4,5,..etc): ");
scanf("%d",&a);
printf("Chiper Text를 입력하시오: ");
scanf("%s",c);
if(a>26)
a=a % 26;
for(i=0; i<strlen(c); i--)
{
if(c[i]==' ')
{
continue;
}
else
{
if(c[i]<= 'c')
{
c[i]=c[i]+26;
}
c[i]=c[i]-a;
}
}
printf("Plain Text는 %s입니다 ",c);
break;
case 'Q':
case 'q':
printf("프로그램을 종료합니다. ");
break;
}
return 0;
}
제가 c언어를 못해서 친구한테 대충 설명듣고 만들었는데 복호화를 못하겠어요
복호화는 암호화를 반대로 하라고 하는데 뭐 제 생각에는 반대로 만든거같은데 자꾸 엉뚱하게 나와요
복호화 for문 조건이 이상하지 않음?
i++를 해야하네요 ㄳㄳ 그럼 여기서 q눌러서 종료를 시키고싶은데 어떻게 해야하나여
http://stackoverflow.com/questions/2425167/use-of-exit-function
종료는 exit(int)