_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 |
_mbsnbcmp |
||
_tcsncmp_l |
_mbsnbcml |
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)
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l