Freigeben über


_mbsnbcmp, _mbsnbcmp_l

Vergleicht die ersten n Bytes von zwei Mehrbyte-Zeichenfolgen.

Wichtiger HinweisWichtig

Diese API kann nicht in den Anwendungen verwendet werden, die in Windows-Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /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 );

Parameter

  • string1, string2
    Die Zeichenfolgen zu vergleichen.

  • count
    Die Anzahl der zu vergleichenden Bytes.

  • locale
    Das Gebietsschema zu verwenden.

Rückgabewert

Der Rückgabewert gibt die Beziehung zwischen den Teilzeichenfolgen in string1 und string an.

Rückgabewert

Beschreibung

< 0

string1 Teilzeichenfolge ist kleiner als string2 Teilzeichenfolge.

0

string1 Teilzeichenfolge ist zu string2 Teilzeichenfolge identisch.

> 0

string1 Teilzeichenfolge ist größer als string2 Teilzeichenfolge.

Auf einem Fehler gibt _mbsnbcmp_NLSCMPERROR zurück, der in String.h und in Mbstring.h definiert ist.

Hinweise

Die _mbsnbcmp-Funktion vergleicht lexikografisch höchstens die ersten count Bytes in string1 und in string2 und gibt einen Wert, der die Beziehung zwischen den Teilzeichenfolgen angibt._mbsnbcmp ist eine Groß-/Kleinschreibung Version von _mbsnbicmp.Anders als strcoll wird _mbsnbcmp nicht von Gebietsschema beeinflusst._mbsnbcmp erkennt Mehrbytezeichensequenzen entsprechend aktuellen vom Codepage.

_mbsnbcmp ähnelt _mbsncmp, außer dass _mbsncmp vergleicht Zeichenfolgen von Zeichen anstatt von Bytes.

Der Ausgabewert wird durch die LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; setlocale finden Sie weitere Informationen.Die Version dieser Funktion, die nicht das Suffix _l besitzt, wird das aktuelle Gebietsschema für dieses Verhalten abhängig; die Version, die das _l Suffix ist identisch ist, außer dass sie verwenden den Gebietsschemaparameter, der in stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Wenn entweder string1 oder string2 ein NULL-Zeiger ist, Aufrufe dieser Funktion der ungültige Parameterhandler, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, gibt die Funktion _NLSCMPERROR zurück und errno wird zu EINVAL festgelegt.

Zuordnung generische Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tcsncmp_l

strncmp

_mbsnbcml

wcsncmp

Anforderungen

Routine

Erforderlicher Header

_mbsnbcmp

<mbstring.h>

_mbsnbcmp_l

<mbstring.h>

Weitere Kompatibilitätsinformation finden Sie unter Kompatibilität.

Beispiel

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

Ausgabe

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-Entsprechung

Nicht zutreffend. Um die Standard-C-Funktion aufzurufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

_mbsnbcat, _mbsnbcat_l

_mbsnbicmp, _mbsnbicmp_l

strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen