U E D R , A S I H C RSS

숫자를한글로바꾸기/김태훈zyint

느낀점

오랜만에 하는거라 -_-;;
C++로 해볼라고 했으나; 너무많은 에러로 좌절하고 걍 씨로 했다..
으윽 -_-...
글구 num2str 요함수.. 걍 수민이한것처럼 배열로 하면 되는데; 괜히 switch로 했다 ㅠㅠ 엉엉

소스

~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++;
	}

}

나에게 할말

스위치문 압박이얌..;;ㅁ;; 이게 모햐>ㅃ<;;; ㅎㅎ 그거 빼고는 다 이쁘넹!~헤...ㅎ 그런데 말야.^^ 수민이꺼나 네꺼 0넣으면 답이 안나오쟈넝..;;ㅁ;; 0이 불쌍해..ㅠ.ㅜ ㅎㅎㅎ 그거빼고는 다 잘해떵..ㅎㅎ 나도 쓰잘때기없는 그 클래스 뺄껄.ㅎ 괜히 넣었어..편하게 짤려다가 더 복잡해 보이는걸~ㅎ ㅎㅎㅎ 그럼 좋은하루>ㅁ<;; - 현태

글게말이다 ㅠㅠ 내가 왜 저리 해두었는지 나두 쫌 뻘쭘하다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 걍 배열로 저리 해두면 됐는데.. 음 글고보니 영만 땡 치면 아무것도 안나오겠구나 ㅠㅠ
나두 언넝 클래스 배워서 소스 좀 깔쌈하게 짜고 싶은데 아직 안배워서 ㅠㅠ - zyint

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2009-05-27 07:09:19
Processing time 0.0924 sec