Sie fügen Tag "Lokalisierung" in Ihre Frage ein. Im Falle des Schreibens einer internationalen Anmeldung sollten Sie definieren, was Sie unter alphabetischen oder numerischen Zeichen verstehen. Wenn Sie Programme für Windows schreiben, empfehle ich Ihnen, GetStringTypeEx
function zu verwenden (siehe Ссылка ) ). Zum Beispiel der Code
Sie können auch CT_CTYPE3
oder CT_CTYPE2
verwenden, um zu bestimmen, ob ein Zeichen ein Ideographic oder eine europäische Nummer ist.
Um genauer zu sein, versuchen Sie einfach, die Funktionen iswalpha
, IsCharAlphaW
, iswalnum
, iswdigit
und GetStringTypeExW
zu verwenden, um folgende Zeichen zu testen: L'a ', L'ü', L'á ' , L'я '(russischer Charackter), L' ノ '(japanischer Charackter in Katakana), L' 一 '(1 auf Japanisch). Du wirst das sehen
Der Code
%Vor% sagen Sie, dass L "一" keine europäische Nummer ist. Sie können GetStringTypeExW
verwenden, um eine europäische Nummer aus z. B. arabischer Nummer usw. zu bestimmen.
Ich empfehle Ihnen daher, Ihre Anforderung genauer zu spezifizieren und dann die API basierend auf den Anforderungen auszuwählen. Im Allgemeinen ist die Verwendung der C-API nicht der beste Weg für eine internationale Anwendung.
Sehen Sie sich std::isaplha<charT>
von <locale>
. Könnte das als std::isalpha<wchar_t>
verwenden.
Es hängt davon ab, wie Sie "äquivalent" definieren. Die C-Zeichenklassen sind im Vergleich zu Unicode-Zeichenklassen recht einfach. Wenn Sie beispielsweise testen möchten, ob ein gegebener Codepunkt normalerweise einen Buchstaben darstellt (für eine Definition von "Buchstabe"), könnten Sie nach der allgemeinen Kategorie L
; Wenn Sie überprüfen möchten, ob eine gegebene Zeichenfolge eine gültige ID enthält, können Sie UAX # 31 usw. verwenden. iswalnum
und iswalpha
können das beabsichtigte Ergebnis abhängig von der aktuellen "Gebietsschema" -Einstellung ergeben.
Der Header ist <wctype.h>
. Die grundlegenden Makro / Funktionsnamen haben ein 'w' in ihnen:
usw.
Es gibt auch die Funktionen:
%Vor%Sie könnten zum Beispiel schreiben:
%Vor%Oder Sie könnten einfach schreiben:
%Vor%Tags und Links c++ unicode localization wchar-t