|
_TCHAR in[100] = _T("새나라\r\n");
ret = _mbslen(in3); //-------> 1.
ret = _mbscspn(in3, "\r\n"); //------->2.
안녕하십니까?
다국어 지원 프로그래밍을 하다가
참 이상하다 싶어서 이렇게 질문을 드립니다.
현재 컴파일 환경변수는 _MBSC 로 설정 했구요
코드 페이지는 949 입니다.
위에 코드는 멀티 바이트를 고려해서 사이즈를 구하고자 하는것인데요.
1번의 ret = 5 가 나옵니다.
그런데 2번의 ret = 6 이나옵니다.
정리 하자면 _mbslen 이 함수는 멀티 바이트를 고려해서 예를 들어서 "새"를 1(size)로 보는데요
왜 _mbscspn 이라는 함수는 멀티 바이트를 지원한다고 하면서 하나의 한글 글자를 1로 보지 않고 2(size)로 보는 지 모르겠습니다.
저의 생각으로는 두번째 리턴값은 3이 나와야 할거 같은데요..... 제가 무언가 생각이 짧은거 같습니다..... 참 어렵습니다. T.T
고수 님들의 답변 바랍니다.
|