_mbsnbcmp, _mbsnbcmp_l
Сравнивает первые n байт двух строк многобайтовых символов.
Важно!
Этот API не может использоваться в приложениях, выполняемых в Среда выполнения Windows.Дополнительные сведения см. в разделе Функции CRT, не поддерживаемые с ключом /ZW.
int _mbsnbcmp( const unsigned char *string1, const unsigned char *string2, size_t count ); int _mbsnbcmp_l( const unsigned char *string1, const unsigned char *string2, size_t count, _locale_t locale );
Параметры
string1, string2
Строки для сравнения.count
Число байтов для сравнения.locale
Используемый языковой стандарт.
Возвращаемое значение
Возвращаемое значение отражает порядковую взаимосвязь подстрок string1 и string.
Возвращаемое значение |
Описание |
---|---|
< 0 |
Подстрока string1 меньше, чем подстрока string2. |
0 |
Подстрока string1 идентична подстроке string2. |
> 0 |
Подстрока string1 больше, чем подстрока string2. |
При ошибке проверки параметра функции _mbsnbcmp и _mbsnbcmp_l возвращают ошибку _NLSCMPERROR, которая определена в <string.h> и <mbstring.h>.
Заметки
Функции _mbsnbcmp сравнивают не более чем count первых байт в string1 и string2 и возвращают значение, указывающее отношение между подстроками. _mbsnbcmp — чувствительная к регистру версия _mbsnbicmp. В отличие от _mbsnbcoll, на функцию _mbsnbcmp не влияет порядок сортировки языкового стандарта. _mbsnbcmp распознает последовательности многобайтовых символов в соответствии с текущей многобайтовой кодовой страницей.
Функция _mbsnbcmp похожа на _mbsncmp за тем исключением, что _mbsncmp сравнивает строки посимвольно, а не побайтно.
На выходное значение влияет настройка категории LC_CTYPE языкового стандарта, которая определяет начальные и конечные байты многобайтовых символов. Подробнее см. в разделе setlocale. Функция _mbsnbcmp использует текущий языковой стандарт для данной функциональности, зависящей от языкового стандарта. Функция _mbsnbcmp_l идентична за исключением того, что она использует вместо этого параметр locale. Для получения дополнительной информации см. Языковой стандарт.
Если string1 или string2 является пустым указателем, эти функции вызывают обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, эти функции возвращают _NLSCMPERROR и устанавливают для параметра errno значение EINVAL.
Универсальное текстовое сопоставление функций
Подпрограмма Tchar.h |
_UNICODE и _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tcsncmp |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_mbsnbcmp |
<mbstring.h> |
_mbsnbcmp_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
// crt_mbsnbcmp.c
#include <mbstring.h>
#include <stdio.h>
char string1[] = "The quick brown dog jumps over the lazy fox";
char string2[] = "The QUICK brown fox jumps over the lazy dog";
int main( void )
{
char tmp[20];
int result;
printf( "Compare strings:\n %s\n", string1 );
printf( " %s\n\n", string2 );
printf( "Function: _mbsnbcmp (first 10 characters only)\n" );
result = _mbsncmp( string1, string2 , 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
printf( "Function: _mbsnicmp _mbsnicmp (first 10 characters only)\n" );
result = _mbsnicmp( string1, string2, 10 );
if( result > 0 )
_mbscpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
_mbscpy_s( tmp, sizeof(tmp), "less than" );
else
_mbscpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
}
Вывод
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: _mbsnbcmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: _mbsnicmp _mbsnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Эквивалент в .NET Framework
Неприменимо. Для вызова стандартной функции C используйте PInvoke. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.
См. также
Ссылки
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l