(수정) 일의 자리의 "일"을 제외한 함수 (주석문 추가) // 이제보니 Little AOI 페이지였네;;;;;;; 그냥 내주신 문제인줄 알았는데 =ㅁ= {{{~cpp /* 성공시 const char * 리턴 실패시 -1 리턴 */ #include const char *change(int num) { static char ret[30] = {0}; // static array for return; char data[7][3] = {0}; // stack int i; // for for - _ - kidding. kiki~ int buf; int count=0; // 자릿수. if(num >= 1000000) // 10만 자리를 넘으면 에러 return return -1; for(i=0; num>0; ++i){ buf = num % 10; switch(buf){ case 0: strcpy(data[i], "영"); break; case 1: strcpy(data[i], "일"); break; case 2: strcpy(data[i], "이"); break; case 3: strcpy(data[i], "삼"); break; case 4: strcpy(data[i], "사"); break; case 5: strcpy(data[i], "오"); break; case 6: strcpy(data[i], "육"); break; case 7: strcpy(data[i], "칠"); break; case 8: strcpy(data[i], "팔"); break; case 9: strcpy(data[i], "구"); break; } num /= 10; ++count; } for(--count; count>=0 ; --count){ // stack이니 끝에서부터 다시 꺼내줌. // if(strcmp(data[count], "일") != 0) // 일의 자리를 제외한 각자리의 일을 빼준다. strcat(ret, data[count]); // if(i == 0 && strcmp(data[count], "일") == 0) strcat(ret, data[count]); // 일의 자리는 따로. switch(count){ // 단위 붙임. case 0: strcat(ret, ""); break; case 1: strcat(ret, "십"); break; case 2: strcat(ret, "백"); break; case 3: strcat(ret, "천"); break; case 4: strcat(ret, "만"); break; case 5: strcat(ret, "십만"); break; } } return ret; } }}} 머리 쓰기 정말 귀찮아서 생각을 전혀 안하고 손가는 대로 짰음... 생각을 안하니 이렇게 더러운 코드가 만들어지는 구나 생각했음. 아무튼 이 소스를 한달뒤에 수정하려면 생각을 많이 해야됨. C언어의 장점인 효율적 함수 구성까지 떨어짐. 재사용은 가능하지만 수정 불가능 코드로 스스로 선언하겠음. 키키. 소스 수정할바에 새로 짠다.