C에서 한글을 다루는 방법에 대한 질문입니다
지금 하고자 하는게, 한글을 한자 한자 입력받아서 이게 한글의 글자가 되는지 아닌지를 초성/중성/종성 등을 통해 판단하는 프로그램을 만들려고합니다.
그래서 c++ 로 한글을 다루는 방법을 찾아보고 있는 중인데
일단 wchar_t, wprintf, putwchar로 한글 한자를 입력받아서 출력하는것까진 이해를 했습니다
제가 하고자 하는 것을 위한 것은 구글링을 아무리 해도 찾을수가 없어서 질문을 드립니다. ㅠㅠ
질문하고자 하는 것은 다음입니다...
1. 한글 한자가 있을 때 이 글자로부터 초성/종성/종성을 쪼갤 수 있나요?
wchar_t tmp = L'가';
라고 선언되어 있는 변수가 있다면 tmp라는 변수로부터 'ㄱ', 'ㅏ', '\0'(마지막에 종성받침이 없는걸 뭐라고 표현해야할지 모르겠네요.. 널문자가 맞을런지??) 라는 한글의 기본 요소들을 이끌어 낼 수 있을까요?
2. 위의 영어입력 상태에서 한글을 입력받는 포맷으로 할 때 가장 큰 걸림돌이라고 생각되는게 있습니다...
예를 들어 'rlaTl' 가 입력됬다면, 사람이야 한영키 바꿔서 타이핑하든 아님 키보드 외운채로 생각하든 해서 저게 '김씨'라는 한글 단어를 나타내는걸 알지만 프로그램은 그걸 모르겠죠..
그래서 저런 식으로 영어가 입력이 됬을 때 이걸 적절하게 한글로 매핑시켜주는게 가장 힘들것 같아요..
생각해보니 이건 영어로 입력받는게 아니라 한글로 입력받는것이라도 프로그램 성격상 'ㄱㅣㅁㅆㅣ' 이런 형태로 입력받을 거라 적절한 한글 매핑은 두 형식 다 문제네요.
어떻게 해야할지 조언이라도 여쭙고 싶습니다 .ㅠㅠ
한글입력 오토마타 소스와 알고리즘을 찾아보셔야
한글입력 오토마타 소스와 알고리즘을 찾아보셔야 할거예요. 오픈소스가 있는지 모르겠네요..
제가 경험한 바에 의하면, "한글" 입력은 이와 같이 되더군요.
g ㅎ ㅎ
k ㅏ 하
s ㄴ 한(완료)
r ㄱ ㄱ(새글자)
m ㅡ 그
f ㄹ 글
"하글" 입력은 이렇게
g ㅎ ㅎ
k ㅏ 하
r ㄱ 학(미완)
m ㅡ 하(완료)그
f ㄹ 글
중요한건 완료가 되는 시점 입니다. '하' 까지 써진 다음에 '학' 이 되더라도 아직 한 글자가 완료된게 아니예요. 그래서 다음 입력되는 키를 살펴봅니다. 다음에 자음이 오면 '학' 으로 완료 시키지만 다음에 모음이 오면 '하'로 완료시키고 'ㄱ'은 다음 모음에 붙여서 새 글자를 만들죠.
여기에서 각 단계마다 만들어지는 글자가 화면에 출력이 되죠. 자음과 모음으로 분리하는 것은 가능한지 잘 모르겠구요..
도움도 못될 것을 늘어놓은건 아닌지 모르겠네요.. 이와 관련된 오토마타 알고리즘은 찾아보면 많을거예요..
Thanks for being one of those who care for people and mankind.
I'd like to be one of those as well.
감사합니다
오토마타 관련 수업을 듣는 중이라 교수님께서 한글 오토마타 관련 내용 수업은 이미 하셔서 DFA는 이미 짜놨어요..
그래서 gksrmf이 입력됬을때 이게 완전한 글자로 인식되는지 안되는지(accept or not accept)는 판별할 수 있는데
이렇게 입력된 gksrmf을 온전한 '한글'로 출력하는걸 어떻게해야할지 몰라서 질문을 드린겁니다 ㅠㅠ
...
http://wyb330.egloos.com/3048787 한글 코드를 이해하면 분해 가능합니다. 이 페이지는 unicode인 경우입니다.
It is better--much better--to have wisdom and knowledge than gold and silver [Proverbs 16.16]
한글 관련 오프소스는 libhangul 찾아보시면
한글 관련 오프소스는 libhangul 찾아보시면 되는데...
문제는 kldp.net이 먹통이라는것..
--------
From Buenos Aires, Argentina
No sere feliz pero tengo computadora.... jaja
닥치고 Ubuntu!!!!!
To Serve My Lord Jesus
blog: http://sehoonpark.com.ar
http://me2day.net/sheep
댓글 달기