Как сделать сравнение без учета регистра между двумя символами Unicode или строками под Windows в C / C ++? - PullRequest
3 голосов
/ 08 марта 2010

Я ищу способ сделать нечувствительное сравнение двух символов Unicode (char32) под Windows (C / C ++, а не .NET).

Мне известно, что решение должно быть ориентировано на язык.

Мне бы хотелось решение, которое не требовало бы дополнительных сторонних библиотек.

Ответы [ 2 ]

2 голосов
/ 08 марта 2010

Моя первая мысль, что вы должны искать CompareStringEx с его параметрами LOCALE_INVARIANT и NORM_IGNORECASE.

0 голосов
/ 08 марта 2010

Упс, вы хотите сравнить char32s. Проигнорируйте мой пост.

Мой оригинальный ответ

Для потомков:

Вы можете использовать

_wcsicmp(const wchar_t *string1, const wchar_t *string2) or

_mbsicmp(const unsigned char_t *string1, const unsigned char *string2)

первый сравнивает широкие символы (обычно UTF-16) и последний сравнивает многобайтовые символы (обычно UTF-8). Вам нужно установить кодовая страница с использованием

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