2009-05-29 2 views

Antwort

12

iswdigit(), iswalpha() und iswalnum() sind die Funktionen, die Sie für suchen.

Prost!

+0

Überprüfen Sie nicht einfach dasselbe wie isdigit(), isalpha(), isalnum()? Der ursprüngliche Beitrag scheint nach nicht lateinischen Ziffern und Buchstaben zu suchen. – celticminstrel

2

This Microsoft documentation page beschreibt "Unicode-Zeichenklassen" in regulären Ausdrücken, was sehr relevant klingt. Ich denke, die Antwort ist in der .Net-Domäne, und nicht reines Win32 C++, aber vielleicht können Sie etwas ausgraben.

+0

Link führt zu Regex-Syntaxreferenz. – n0rd

4

Ich empfehle die ICU-Bibliothek. Es verfügt über alle Unicode-Daten sowie über eine anständige Unicode-String-Klasse für C++.

5

Eine weitere Option ist der Win32-API-Aufruf GetStringTypeW()

+0

Das sieht aus wie das richtige zu verwenden. –

1
Private Declare Function GetStringTypeW Lib "Kernel32" (ByVal InfoType As Long, Text As Byte, ByVal Length As Long, Types As Integer) As Long 
... 
Dim S As String, B() As Byte, C() As Integer, L as Long 
L = Len(S) 
ReDim C(1 To L) 
B = S 
If GetStringTypeW(1, B(0), L, C(1)) Then 
    'Character classes are in C. 
Else 
    'Something went wrong. Deal with it or call Err.Raise. 
End If