Поделиться через


Функция lstrcmpiA (winbase.h)

Сравнивает две символьные строки. Сравнение выполняется без учета регистра.

Чтобы выполнить сравнение с учетом регистра, используйте функцию lstrcmp .

Синтаксис

int lstrcmpiA(
  [in] LPCSTR lpString1,
  [in] LPCSTR lpString2
);

Параметры

[in] lpString1

Тип: LPCTSTR

Первая строка, заканчивающаяся пустым значением, для сравнения.

[in] lpString2

Тип: LPCTSTR

Вторая строка, завершающаяся значением NULL, для сравнения.

Возвращаемое значение

Тип: int

Если строка, на которую указывает lpString1 , меньше строки, на которую указывает lpString2, возвращаемое значение будет отрицательным. Если строка, на которую указывает lpString1 , больше строки, на которую указывает lpString2, возвращается положительное значение. Если строки равны, возвращаемое значение равно нулю.

Комментарии

Функция lstrcmpi сравнивает две строки, проверяя первые символы друг с другом, вторые символы друг с другом и т. д., пока не обнаружит неравенство или не достигнет конца строк.

Обратите внимание, что параметры lpString1 и lpString2 должны заканчиваться значением NULL, в противном случае сравнение строк может быть неправильным.

Функция вызывает CompareStringEx, используя текущий языковой стандарт потока, и вычитает 2 из результата, чтобы сохранить соглашения времени выполнения C для сравнения строк.

Для некоторых языковых стандартов функция lstrcmpi может оказаться недостаточной. В этом случае используйте CompareStringEx , чтобы обеспечить правильное сравнение. Например, в Японии вызовите со значениями NORM_IGNORECASE, NORM_IGNOREKANATYPE и NORM_IGNOREWIDTH , чтобы получить наиболее подходящее сравнение строк. Значения NORM_IGNOREKANATYPE и NORM_IGNOREWIDTH игнорируются в неазиатских языковых стандартах, поэтому вы можете задать эти значения для всех языковых стандартов и гарантировать правильную культурную сортировку независимо от языкового стандарта. Обратите внимание, что указание этих значений снижает производительность, поэтому используйте их только при необходимости.

При использовании двухбайтовой кодировки (DBCS) в системе эта функция может сравнивать две строки DBCS.

Функция lstrcmpi использует сортировку слов, а не строковую сортировку. Сортировка слов обрабатывает дефисы и апострофы иначе, чем другие символы, которые не являются буквенно-цифровыми, чтобы гарантировать, что такие слова, как "coop" и "co-op", остаются вместе в отсортированных списках. Подробное обсуждение сортировки слов и строк см. в разделе Обработка сортировки в приложениях.

Замечания по безопасности

Рекомендации по обеспечению безопасности при выборе функций сравнения см. в статье Вопросы безопасности: международные функции .

Примечание

Заголовок winbase.h определяет lstrcmpi в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winbase.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

CompareString

CompareStringEx

CompareStringOrdinal

Основные понятия

Другие ресурсы

Справочные материалы

Строки

lstrcat

lstrcmp

lstrcpy

lstrlen