_mbsnbcmp, _mbsnbcmp_l

Сравнивает байты n первые 2 строк многобайтовой кодировки.

Важное примечаниеВажно

Этот 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 возвращает _NLSCMPERROR, которая определена в String.h и Mbstring.h.

Заметки

Функция _mbsnbcmp лексикографически сравнивает, по крайней мере, первые count байтов в string1 и string2 и возвращает значение, которое указывает на связь между подстроками._mbsnbcmp учитывается регистр версия _mbsnbicmp.В отличие от strcoll, _mbsnbcmp не зависеть от на языкового стандарта._mbsnbcmp распознает последовательности многобайтовой кодировки в соответствии с текущей многобайтовой кодовая страница.

_mbsnbcmp похож на _mbsncmp, за исключением того, что _mbsncmp можно сравнивать строки, а не байтами.

Выходное значение зависеть на категории параметром LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale.Версия этой функции, которая не имеет суффикс _l используется текущий языковой стандарт для данного расширения функциональности языкового стандарта, элемента. версии с суффикс _l идентичны, за исключением того, что он используют параметры языкового стандарта, который передается в вместо.Для получения дополнительной информации см. Языковой стандарт.

Если string1 или string2 указатель, эта функция вызывает обработчик недопустимого параметра, как описано в разделе Проверка параметров.Если среда выполнения может продолжить, функция возвращает значение _NLSCMPERROR, а свойство errno имеет значение EINVAL.

Универсальное текстовое сопоставление функций

Подпрограмма TCHAR.H

Не указаны _UNICODE и _MBCS

определенные _MBCS

Определение _UNICODE

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

Требования

Функция

Требуемый заголовок

_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 );
}

Output

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. Для получения дополнительной информации см. Примеры вызовов неуправляемого кода.

См. также

Ссылки

Управление строками (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbicmp, _mbsnbicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Языковой стандарт

Интерпретация последовательностей многобайтового символов