Freigeben über


_mbsnbcmp, _mbsnbcmp_l

Vergleicht die ersten n Bytes von zwei Multibytezeichenfolgen.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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 zu vergleichende Zeichenfolgen.

  • count
    Die Anzahl der zu kopierenden Bytes.

  • locale
    Das zu verwendende Gebietsschema.

Rückgabewert

Der Rückgabewert gibt die ordinale Beziehung der untergeordneten Zeichenfolgen von string1 und string an.

Rückgabewert

Beschreibung 

< 0

Die untergeordnete Zeichenfolge string1 ist kleiner als die untergeordnete Zeichenfolge string2.

0

Die untergeordnete Zeichenfolge string1 ist mit der untergeordneten Zeichenfolge string2 identisch.

> 0

Die untergeordnete Zeichenfolge string1 ist größer als die untergeordnete Zeichenfolge string2.

Bei einem Parametervalidierungsfehler geben _mbsnbcmp und _mbsnbcmp_l _NLSCMPERROR zurück (definiert in <string.h> und <mbstring.h>).

Hinweise

Die _mbsnbcmp-Funktionen vergleichen höchstens die ersten count Bytes in string1 und string2 und geben einen Wert zurück, der die Beziehung zwischen den untergeordneten Zeichenfolgen angibt. _mbsnbcmp ist eine Version von _mbsnbicmp unter Berücksichtigung von Groß- und Kleinschreibung. Im Gegensatz zu _mbsnbcoll, wird _mbsnbcmp nicht durch die Sortierung des Gebietsschemas beeinflusst. _mbsnbcmp erkennt Multibytezeichenfolgen gemäß der aktuellen Multibyte-Codepage.

_mbsnbcmp ähnelt _mbsncmp, mit der Ausnahme, dass _mbsncmp Zeichenfolgen nach Zeichen und nicht nach Bytes vergleicht.

Der Ausgabewert wird von der LC_CTYPE-Kategorieeinstellung des Gebietsschemas beeinflusst, die die vorangestellten und nachstehenden Bytes von Multibytezeichen angibt. Weitere Informationen finden Sie unter setlocale. Die _mbsnbcmp-Funktion verwendet das aktuelle Gebietsschema für dieses gebietsschemaabhängige Verhalten. Die _mbsnbcmp_l-Funktion ist identisch, abgesehen davon, dass sie stattdessen den locale-Parameter verwendet. Weitere Informationen finden Sie unter Locale.

Wenn string1 oder string2 ein NULL-Zeiger ist, rufen diese Funktionen den Handler für ungültige Parameter auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben die Funktionen _NLSCMPERROR zurück und legen errno auf EINVAL fest.

Zuordnung generischer 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 Informationen zur Kompatibilität 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. Mit PInvoke rufen Sie die Standard-C-Funktion auf. 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

Locale

Interpretation von Mehrbytezeichensequenzen