2010-12-09 7 views
1

나는 std :: wstring을 가지고 있는데 어떤 문자가 upper인지 알아 내고 싶습니다. case와 어느 것이 소문자인지 알고 싶습니다. 성병 :: isupper와 islower와는 ASCII 문자에서 작동하도록 보인다하지만 난 예를 들어, 대문자와 소문자isstop 및 wstring 용 islower

의 모든 종류를 찾을 수 있도록하려면 á는 "급한 라틴 소문자" 이고 Á는 "급한 라틴어 대문자 A" 과 비슷하게 ä 및 Ä는 대문자와 소문자입니다.

문자가 대소 문자인지 (로케일에 관계없이) 알아 내기 위해 사용할 수있는 함수 (mfc, boost 또는 다른 라이브러리에 있습니까?)가 있습니까? 사전에

덕분에

라훌

답변

3

대부분의 구현은 iswXxx 기능, iswupperiswlower 즉를 제공 할 것입니다. 큰 문제는 와이드 문자열에서 사용되는 인코딩이 정의되지 않았기 때문에 대문자와 소문자로 결정되는 값이 실제로 대상 플랫폼에 달려 있다는 것입니다. (iswXxx 함수는 표준에 없습니다.)

편집 : 빌은 바보입니다! std::isupper에 대해 <locale>에 선언 된 템플릿은 charwchar_t을 모두 허용합니다. (그러나 로케일 객체가 필요합니다)

+0

기본적으로 유니 코드가 VC++ 용 isLower/isUpper 함수를 알고 싶습니다. 그러나 나는 지금까지 아무 것도 찾을 수 없었다. –

+0

@Rahul : 로캘 별 버전 Billy가 지적한 바는 정확히 당신이 쫓고있는 것입니다. – Goz

+0

그래,있어, 그들은 IsCharUpperW 및 IsCharLowerW에서 windows.h 있습니다 –