2바이트 문자(MBCS)로 처리 할 경우 보편적으로 상위 1바이트를 비교해서
검사하는 방법을 이용 할 수 있습니다. (몇 가지 예외가 있지만..)
for(itCount = 0; itCount < string.Length(); itCount ++) {
if( (string.c_str()[itCount] & 0x80) == 0x80 ) {
// - itCount~itCount+1까지 2바이트가 한글
// - 한글 일 때 처리
itCount ++; // 한글문자 다음 바이트로 넘김
}
}
유니코드 이용은 조금 더 까다롭습니다.
비슷한 질문이 있으니 참고 하시기 바랍니다.
http://www.borlandforum.com/impboard/impboard.dll?action=read&db=bcb_qna&no=29516
ps: 여담이지만 기존의 있는 것 이상의 것을 구현 할 때는, 완전히 새로 만드실 것을 생각 하셔야
합니다. 이를테면 '캐롯을 기울일수도 없고' 하신 부분은 캐럿을 기울 일 수 있는 방법을 찾기보다
일러스트레이터 처럼 곡면을 따라 바운드되는 텍스트 입/출력의 구현을 고려하시는 것이 더 개발적인
측면에서의 효율이 높습니다. 컴포넌트로 만드신다면 더 할 나위 없겠죠.
leo21c 님이 쓰신 글 :
: C++빌더로 텍스트 프로그램을 만들려고 합니다.
: 유니코드로 처리하면 구분을 할 수 있을 것 같기는 한데...
:
: 제가 하고자 하는 것입니다.
:
: 한글, 영문, 그밖의 문자를 키보드로 입력받아 화면에 보이게 하는 것입니다. Edit처럼~
: 마우스로 드레그 한 부분의 폰트, 크기를 변경할 수도 있고요.
: 만약 폰트가 한글을 지원하지 않는 영문 폰트라면 한글을 무조건 "굴림"으로 처리하려고 합니다.
: 그러기 위해서는 이 글자가 한글인지 영문인지 알아야 하죠.
: 그리고, 한글자 치면 커서(캐롯)을 폰트사이즈 만큼 옆으로 이동시켜야 하는데
: 영문은 간단하게 글자수를 알수 있지만 한글은 자음/모음, 글자하나, 각각 어떻게 입력받았는지
: 확인을 해야만 캐롯을 이동시킬수 있잖아요. 정말 어떻게 처리해야 할지 모르겠습니다.
:
: 다음에는 커브모양으로도 글을 쓸수 있도록(일러에서 커브따라서 글씨쓰기) 만들어야 하는데
: 캐롯을 기울일수도 없고 공부를 많이 해야겠다는 생각이드는군요.
:
: 조언 부탁드립니다.