Функция CompareStringA (winnls.h)
Сравнивает две строки символов для языкового стандарта , заданного идентификатором.
Синтаксис
int CompareStringA(
[in] LCID Locale,
[in] DWORD dwCmpFlags,
[in] PCNZCH lpString1,
[in] int cchCount1,
[in] PCNZCH lpString2,
[in] int cchCount2
);
Параметры
[in] Locale
Идентификатор языкового стандарта, используемого для сравнения. Вы можете использовать макрос MAKELCID для создания идентификатора языкового стандарта или использовать одно из следующих предопределенных значений.
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] dwCmpFlags
Флаги, указывающие, как функция сравнивает две строки. Подробные определения см. в параметре dwCmpFlagsобъекта CompareStringEx.
[in] lpString1
Указатель на первую сравниваемую строку.
[in] cchCount1
Длина строки, указанной lpString1, за исключением завершающего символа NULL. Это значение представляет байты для версии ANSI функции и расширенные символы для версии Юникода. Приложение может предоставить отрицательное значение, если строка заканчивается null. В этом случае функция автоматически определяет длину.
[in] lpString2
Указатель на вторую строку для сравнения.
[in] cchCount2
Длина строки, указанной lpString2, за исключением завершающего символа NULL. Это значение представляет байты для версии ANSI функции и расширенные символы для версии Юникода. Приложение может предоставить отрицательное значение, если строка заканчивается null. В этом случае функция автоматически определяет длину.
Возвращаемое значение
Возвращает значения, описанные для CompareStringEx.
Комментарии
См. примечания для CompareStringEx.
Если приложение вызывает версию ANSI CompareString, функция преобразует параметры с помощью кодовой страницы по умолчанию указанного языкового стандарта. Таким образом, приложение никогда не может использовать CompareString для обработки текста UTF-8.
Как правило, для сравнений без учета регистра CompareString сопоставляет строчные буквы "i" с прописными буквами "I", даже если языковой стандарт является турецким или азербайджанским. Флаг NORM_LINGUISTIC_CASING переопределяет это поведение для турецкого или азербайджанского языка. Если этот флаг указан в сочетании с турецким или азербайджанским, ТО ЛАТИНСКАЯ МАЛЕНЬКАЯ БУКВА DOTLESS I (U+0131) — это строчная форма ПРОПИСНОЙ БУКВЫ I (U+0049), а ЛАТИНСКАЯ МАЛЕНЬКАЯ БУКВА I (U+0069) — строчная форма ЛАТИНСКОЙ ПРОПИСНОЙ БУКВЫ I WITH DOT ABOVE (U+0130).
Начиная с Windows 8: Версия ANSI функции объявлена в Winnls.h, а версия Юникода — в Stringapiset.h. До Windows 8 обе версии объявлялись в Winnls.h.
Примечание
Заголовок winnls.h определяет CompareString как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winnls.h (включая Windows.h) |
Библиотека | Kernel32.lib |
DLL | Kernel32.dll |
См. также
Обработка сортировки в приложениях
Функции поддержки национальных языков