(수정) 일의 자리의 "일"을 제외한 함수 (주석문 추가)
// 이제보니 Little AOI 페이지였네;;;;;;; 그냥 내주신 문제인줄 알았는데 =ㅁ=

~cpp 
/*
성공시 const char * 리턴
실패시 -1 리턴
*/
#include <string.h>

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언어의 장점인 효율적 함수 구성까지 떨어짐.
재사용은 가능하지만 수정 불가능 코드로 스스로 선언하겠음. 키키.
소스 수정할바에 새로 짠다.
Retrieved from http://wiki.zeropage.org/wiki.php/이영호/숫자를한글로바꾸기
last modified 2021-02-07 05:30:33