Функция 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
идентификатор языкового стандарта языкового стандарта, используемого для сравнения. Вы можете использовать макрос
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] dwCmpFlags
Флаги, указывающие, как функция сравнивает две строки. Подробные определения см. в параметре dwCmpFlagsCompareStringEx.
[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 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winnls.h (включая Windows.h) |
библиотеки |
Kernel32.lib |
DLL | Kernel32.dll |
См. также
обработка сортировки в приложениях
поддержки национальных языков
функции поддержки национальных языков
вопросы безопасности : международные функции