해당 캐릭터셋의 대소문자를 어떻게 구하나요.
글쓴이: sauron / 작성시간: 수, 2011/06/29 - 10:20오후
C/C++ 에
int toupper (int c);
int tolower (int c);
라는 함수가 있읍니다. man 페이지에는
-- 만일 c 가 unsigned char 값이 아니거나 EOF이면, 함수의 행동은 예상할 수 없다.
라고 되어 있는데, 만약 인수 c 가 현재의 로케일이나 문자셋 기준으로 unsigned char 범위를 넘는 경우,
해당 문자의 대문자나 소문자를 구할 수 있을까요.
Forums:


문자셋이 아스키처럼 대소문자간에 일정offset이
문자셋이 아스키처럼 대소문자간에 일정offset이 있다면 그값을 빼거나 더하면될테고,
그렇지 않다면 문자별로 if나 switch문을 쓰거나 속도를 위해서라면 룩업테이블을 만들어 쓸수도 있겠지요.
-- 문자셋이 아스키처럼 대소문자간에
-- 문자셋이 아스키처럼 대소문자간에 일정offset이 있다면 그값을 빼거나 더하면될테고,
-- 그렇지 않다면 문자별로 if나 switch문을 쓰거나 속도를 위해서라면
-- 룩업테이블을 만들어 쓸수도 있겠지요.
이렇게 하면 당연히 되겠죠. 질문은 라이브러리 차원에서 해당 문자셋을 알고 있는 경우,
그 문자에 대한 대소문자를 구할 수 있는 함수나 기타의 방법이 있냐는 것입니다.
toupper 대신에 towupper_l 쓰면 되나
toupper 대신에 toupper_l 쓰면 되나 봅니다.
제가 직접 해본건 아니라서 해결될지는 모르겠습니다.