메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

뇌를 자극하는 C 프로그래밍

뇌를 자극하는 C 프로그래밍 질의응답 게시판입니다.

배열에 입력하는 방법에 대해서..

2008-04-09

|

by 안휘항

2066

혹시 시저 암호에 대해 아시는지요?
a→b, b→c, A→B  와 같이 해서 암호화 하는 것입니다.
이런 프로그램을 만들려고 하는데요(물론 나중에 z일때 {가 되는 경우는 수정할겁니다.)

#include
int main()
{
    int i, size;
    char select;
    char a[] = {0};
    
    
    printf("==시저암호 코딩, 디코딩프로그램(영문)==\n");
    printf("1. 암호화(코딩)\n");
    printf("2. 해석(디코딩)\n");
    printf("원하는 메뉴의 숫자를 입력하세요 : ");
    scanf("%c", &select);

    switch(select){
        case 1: printf("암호화 할 문장을 입력하세요 : ");
                        scanf(" %c", &a[0]);
                        for(i=1;a[i]=0;++i){
                        scanf("%c", &a[i]);
                        }
                    size = sizeof(a) / sizeof(a[0]);
                    for(i=0;i                         printf("%c", a[i]+1);
                        }
                break;
        case 2: printf("암호화된 문장을 입력하세요 : ");
                scanf(" %c", &a[0]);
                    for(i=1;a[i]=0;++i){
                        scanf("%c", &a[i]);
                        }
                    size = sizeof(a) / sizeof(a[0]);
                    for(i=0;i                         printf("%c", a[i]-1);
                        }
        }
        
    return 0;
}

그런데 처음에 1을 입력해서 선택한 후 asdf를 입력하면 a만 a→b가 되어 출력되고 나머지는 출력되지 않습니다. 혹시 제가 입력한 것이 제대로 입력되지 않았기 때문인가요? (for문이 마음에 조금 걸립니다. 또 size의 사용을 잘못한것 같기도 하고요.) 확인해주시겠습니까?
가능하다면 올바르게 고쳐주세요.
댓글 입력
자료실