~cpp #include <stdio.h> #include <string.h> #define TRUE 1 #define FALSE 0 char* num2str(int num); //숫자를 문자로 변경시켜줍니다. int is_numarray(char getdata[]); //char 배열의 요소가 숫자인지 확인 - 맞으면 TRUE 리턴 void inputdata(char *getdata); // 5자리이하 숫자를 문자로 getdata에 배열로 입력받기 void prtkor(char *getdata); int main(int argc, char* argv[]) { char getdata[6]; //입력 inputdata(getdata); //출력 prtkor(getdata); printf("\n"); return 0; } // 5자리이하 숫자를 문자로 getdata에 배열로 입력받기 void inputdata(char *getdata) { do{ //숫자 입력받기 printf("숫자 5자리를 입력해주세요 >> "); gets(getdata); if(strlen(getdata)>5) continue; //숫자인가? if(!is_numarray(getdata)) continue; //모든 조건이 참이면 빠져나감. break; } while(1); } //숫자를 문자로 변경시켜줍니다. char* num2str(int num) { char* str; switch(num) { case 1: str = "일"; break; case 2: str = "이"; break; case 3: str = "삼"; break; case 4: str = "사"; break; case 5: str = "오"; break; case 6: str = "육"; break; case 7: str = "칠"; break; case 8: str = "팔"; break; case 9: str = "구"; break; } return str; } //char 배열의 요소가 숫자인지 확인 - 맞으면 TRUE 리턴 int is_numarray(char getdata[]) { // 48 ~ 57 unsigned int i=0; do{ if(getdata[i]<48 || getdata[i]>57) return FALSE; i++; } while(i <= strlen(getdata)-1 ); return TRUE; } void prtkor(char *getdata) { char* jari[5] ={"","십","백","천","만"}; int i,pjari=0; for( i=0 ; i<(int)strlen(getdata) ; ++i){ // 현재 자리가 0이면 말하지 않는다. if(getdata[i] != '0') { //첫자리 일은 말하지 않는다. if(!(i==0 && getdata[i] == '1')){ printf("%s",num2str(getdata[i]-48)); } //현재 자리 출력(십,백,천,만...) printf("%s",jari[strlen(getdata)-pjari-1]); } pjari++; } }