Есть ли способ обнаружить буквенно-цифровой символ Unicode? - PullRequest
4 голосов
/ 29 мая 2009

У меня есть строка Unicode, состоящая из букв, цифр и знаков препинания. Как я могу обнаружить символы, которые являются цифрами и буквами (не обязательно ASCII) с помощью стандартной библиотеки C ++ или Win32 API?

Ответы [ 5 ]

12 голосов
/ 29 мая 2009

iswdigit () , iswalpha () и iswalnum () - это функции, которые вы ищете.

Ура!

5 голосов
/ 29 мая 2009

Другим вариантом является вызов Win32 API GetStringTypeW ()

4 голосов
/ 29 мая 2009

Я рекомендую библиотеку ICU. Он имеет все эти данные Unicode, а также приличный класс строки Unicode для C ++.

2 голосов
/ 29 мая 2009

Эта страница документации Microsoft описывает «классы символов Unicode» в регулярных выражениях, что звучит очень актуально. Я думаю, что ответ находится в домене .Net, а не на чистом Win32 C ++, но, возможно, вы сможете что-то выкопать.

1 голос
/ 18 марта 2011
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...