Функция 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 |
См. также
Основные понятия
Другие ресурсы
Справочные материалы