Функция lstrcmpi сравнивает две строки символов. Сравнение не зависимо от регистра. Чтобы выполнить сравнение, которое зависимо от регистра, используйте функцию lstrcmp.
int lstrcmpi( LPCTSTR lpString1, LPCTSTR lpString2 ); |
[in] Указатель на первую строку с завершающим нулем, которая будет сравниваться.
lpString2[in] Указатель на вторую строку с завершающим нулем, которая будет сравниваться.
Если строка, указанная при помощи lpString1, меньше, чем строка, указанная при помощи lpString2, возвращаемое значение - отрицательное. Если строка, указанная при помощи lpString1, больше, чем строка указанная при помощи lpString2, возвращаемое значение - положительное. Если строки одинаковы, возвращаемое значение - нуль.
Функция lstrcmpi сравнивает две строки, проверяя первые символы по отношению друг к другу, вторые символы по отношению друг к другу, и так далее до тех пор, пока не она найдет неравенство или не достигнет конца строк.
Обратите внимание! на то , что параметры lpString1 и lpString2 должны быть завершены нулем, в противном случае, сравнение строк может быть неправильное. |
Функция возвращает различие значений первых неравных символов, с которым она встречается. Например, lstrcmpi определяет, что "abcz" больше, чем "abcdefg", и возвращает различие между z и d.
Функция вызывает функцию CompareString, используя текущий язык страны (местности) потока, и вычитает из результирующего значения 2, чтобы поддержать соглашения в C времени выполнения программы для того, чтобы сравнить строки.
Язык страны, выбранный пользователем в период установки программы или при помощи Панели управления, определяет, какая строка больше (или являются ли строки одинаковыми). Если язык не выбирается, система выполняет сравнение при помощи использования значения по умолчанию.
Для некоторых языков стран функция lstrcmpi может оказаться недостаточной. Если это происходит, то используйте функцию CompareString, чтобы гарантировать правильное сравнение строк. Например, в Японии вызов функции с флажками NORM_IGNORECASE, NORM_IGNOREKANATYPE и NORM_IGNOREWIDTH, достигает самого неадекватного, неточного сравнения строк. Значения NORM_IGNOREKANATYPE и NORM_IGNOREWIDTH игнорируются в неазиатских языках, таким образом Вы можете установить эти флажки для всех языков и гарантированно иметь культурно корректную "нечувствительную" сортировку независимо от языка страны.
Обратите внимание!, что определение этих значений замедляет исполнение задания, так что используйте их только тогда, когда необходимо. |
С версией набора двухбайтовых символов (DBCS) системы, эта функция может сравнить две строки DBCS.
Функция lstrcmpi использует сортировку слов, а не сортировку строк. Сортировка слов обрабатывает дефисы и апострофы по-другому, а не так, как она обрабатывает другие символы, которые не являются буквенно-цифровыми, для того, чтобы гарантировать, что слова такие как "кооператив" и "коопе-ратив" остаются вместе внутри отсортированного списка. Детальное обсуждение сортировки слов и строк, см. в статье описания функции CompareString в разделе Замечания.
Windows 95/98/Me: lstrcmpiW поддерживается программой Microsoft Layer for Unicode (MSLU). Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.
Пример смотри в статье Получение версии системы.
Обзор Строки, Функции, используемые строками, CompareString, lstrcat, lstrcmp, lstrcpy, lstrlen
Размещение и совместимость lstrcmpi |
||
К | Windows XP | Да |
л | Windows 2000 Professional | Да |
и | Windows NT Workstation | Да версии 3.1 |
е | Windows Me | Да |
н | Windows 98 | Да |
т | Windows 95 | Да |
С | Windows Server 2003 | Да |
е | Windows 2000 Server | Да |
р | Windows NT Server | Да версии 3.1 |
в | ||
е | ||
р | ||
Используемая библиотека | Kernel32.lib | |
Используемая DLL | kernel32.dll | |
Заголовочный файл | ||
- объявлено в | Winbase.h | |
- включено в | Windows.h | |
Unicode | Реализуются как версии Unicode и ANSI. | |
Замечания по платформе | Не имеется |