#include <stdio.h>
int main()
{
char str[12] = "\0";
char *ill[] = {"영", "일", "이", "삼", "사", "오", "육", "칠", "팔", "구"};
int num, i, j, l, rest;
printf("정수(0 <= n <= 2147483647) : ");
scanf("%d", &num); // 정수 입력
sprintf(str, "%d", num); // 문자열로 바꿈
if (num > 2147483647 || num < 0) { // 유효값 확인
printf("범위 초과.\n");
return 0;
}
for (i = 0; str[i]; i++); // 자릿수 확인
l = i - 1; // 최대 길이
for (i = 0; i <= l; i++) {
rest = l - i;
if (num > 0 && rest == 0 && str[i] == '0'); // 0이 아니면서 일의 자리가 0
else if (num > 0 && rest > 0 && str[i] == '0'); // 일의 자리가 아닌 모든 0
else if (rest > 0 && rest % 4 != 0 && str[i] == '1'); // 십의 자리 이상에서 1일 때
else
printf("%s", ill[str[i]-'0']); // // 숫자 출력
if (rest == 0) break; // 1의 자리까지 출력했으면 종료
else if (rest % 4 == 1 && str[i] != '0') printf("십");
else if (rest % 4 == 2 && str[i] != '0') printf("백");
else if (rest % 4 == 3 && str[i] != '0') printf("천");
if (rest == 4 && num - (num / 100000000 * 100000000) - num % 10000 != 0)
printf("만"); // 천만 ~ 만 단위에 값이 있으면
else if (rest == 8) printf("억"); // 억단위 이상이면
}
}