isupper и islower для wstring - PullRequest
       21

isupper и islower для wstring

1 голос
/ 09 декабря 2010

У меня есть std :: wstring, и я хочу найти, какие символы в верхнем регистре, а какие в нижнем.кажется, что std :: isupper и islower работают только с символами ASCII, но я хочу иметь возможность находить все виды символов верхнего и нижнего регистра

, например, á - это «латинская строчная буква a с острым» и Áявляется «латинской заглавной буквой A с острым», аналогично ä и Ä являются строчными и прописными немецкими буквами.

Есть ли какая-либо функция (mfc, boost или в любой другой библиотеке), которую я могу использовать, чтобы выяснить,символ в нижнем или верхнем регистре (независимо от локали)?

Заранее спасибо

Рахул

1 Ответ

3 голосов
/ 09 декабря 2010

Большинство реализаций предоставляют функции iswXxx, то есть iswupper и iswlower.Большая проблема заключается в том, что кодировка, используемая в широких символьных строках, не определена, и поэтому значения, которые определяются как верхний и нижний регистр, действительно соответствуют целевой платформе.(Обратите внимание, что функции iswXxx не входят в стандартную комплектацию)

РЕДАКТИРОВАТЬ: И Билл идиот!Шаблон, объявленный в <locale> для std::isupper, принимает как char с, так и wchar_t с.(Но для этого требуется объект локали)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...