2010-12-09 13 views
1

Ich habe eine Std :: wstring und ich möchte herausfinden, welche Zeichen sind Groß- und Kleinschreibung. die std :: isupper und islower scheint nur auf ASCII-Zeichen zu arbeiten, aber ich möchte in der Lage sein, um herauszufinden, alle Arten von Groß- und Kleinbuchstabenisupper und islower für wstring

z.B. á ist ein "lateinischer Kleinbuchstabe a mit Akut" und Á ist ein "Lateinischer Großbuchstabe A mit Akut" ähnlich ä und Ä sind deutsche Groß- und Kleinbuchstaben.

Gibt es eine Funktion (MFK, Boost oder in einer anderen Bibliothek), die ich verwenden kann, um herauszufinden, ob ein Zeichen Groß- oder Kleinschreibung ist (unabhängig von der Ländereinstellung)?

Vielen Dank im Voraus

Rahul

Antwort

3

Die meisten Implementierungen werden iswXxx Funktionen, das heißt iswupper und iswlower bereitzustellen. Das große Problem ist, dass die Kodierung, die in breiten Zeichenfolgen verwendet wird, nicht definiert ist und daher die Werte, die als Groß- und Kleinschreibung ermittelt werden, wirklich der Zielplattform entsprechen. (Beachten Sie, dass die iswXxx Funktionen nicht im Standard sind)

EDIT: Und Bill ist ein Idiot! Die in <locale> für std::isupper deklarierte Vorlage akzeptiert sowohl char s als auch wchar_t s. (Aber es erfordert ein Locale-Objekt)

+0

ok, also im Grunde möchte ich eine Unicode bewusst isLower/isUpper Funktionen für VC++. aber ich konnte bisher keine finden. –

+0

@Rahul: Die länderspezifische Versionen Billy weist darauf hin, GENAU sind, was Sie suchen. – Goz

+0

yup, habe sie, sie sind IsCharUpperW und IsCharLowerW von windows.h –

Verwandte Themen