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


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

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

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

Синтаксис

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

Параметры

[in] lpString1

Тип: LPCTSTR

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

[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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winbase.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

CompareString

CompareStringEx

CompareStringOrdinal

концептуальные

другие ресурсы

Справочник

строки

lstrcat

lstrcmp

lstrcpy

lstrlen