c·c++/c 프로그래밍

밀린 입력 복원

바로이순간 2012. 5. 18. 10:29

문자열을 잘못 입력했을때 복원을 도와주는 프로그램을 만드시오

 

잘못 입력된 예 : RUNNING 을 TIMMOMH로 오른쪽으로 밀려 입력했을때

 

입력1 : TIMMOMH

입력2 : 왼쪽

출력 : RUNNING

 

복원은 왼쪽으로복원, 오른쪽으로복원 두가지로 완성할 것.

Q,A,Z 를 왼쪽으로 복원하면 공백이 나오고, P,L,M 을 오른쪽으로 복원하면 [ , ; , , 가 나오게 해야함.

 

 -----------------------------------------------------------------------------------------------------------------------------------------------


다음과 같이 하면 됩니다.


#include <stdio.h>

int main() {

    char line[108]=" ~!@#$%^&*()_+| `1234567890-=\\ QWERTYUIOP{} qwertyuiop[] ASDFGHJKL:\" asdfghjkl;' ZXCVBNM<>? zxcvbnm,./ ";

    char left[128]={0,};

    char right[128]={0,};

    char buf[100];

    char command[100];

    int i;


    i=0; while(line[i+1]) { left[line[i+1]]=line[i]; i=i+1; }

    i=1; while(line[i]) { right[line[i]]=line[i+1]; i=i+1; }

    left[32]=right[32]=32; // 스페이스는 그대로


    printf("입력1 : ");

    gets(buf);

    printf("입력2  : ");

    gets(command);

    if(strcmp("왼쪽",command)==0) {

        i=0;while(buf[i]) { printf("%c",left[buf[i]]); ++i; }

    }

    else {

        i=0;while(buf[i]) { printf("%c",right[buf[i]]); ++i; }

    }

    

    return 0;

}