strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
Vergleicht die angegebene Anzahl von Zeichen zweier Zeichenfolgen.
Wichtig
_mbsncmp
und _mbsncmp_l
können nicht in Anwendungen verwendet werden, die in Windows-Runtime ausgeführt werden. Weitere Informationen finden Sie im Artikel CRT functions not supported in Universal Windows Platform apps (In Apps für die universelle Windows-Plattform nicht unterstützte CRT-Funktionen).
Syntax
int strncmp(
const char *string1,
const char *string2,
size_t count
);
int wcsncmp(
const wchar_t *string1,
const wchar_t *string2,
size_t count
);
int _mbsncmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _mbsncmp_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);int _mbsnbcmp(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
Parameter
string1
, string2
Zu vergleichende Zeichenfolgen.
count
Anzahl der zu vergleichenden Zeichen.
locale
Zu verwendendes Gebietsschema.
Rückgabewert
Der Rückgabewert zeigt der Beziehung der untergeordneten Zeichenfolgen von string1
und string2
wie folgt 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 Parameterüberprüfungsfehler und _mbsncmp_l
Rückgabefehler_NLSCMPERROR
, _mbsncmp
der in <string.h>
und .<mbstring.h>
Hinweise
Die strncmp
-Funktion führt einen Ordinalvergleich der (höchstens) ersten count
-Zeichen in string1
und string2
und gibt einen Wert zurück, der die Beziehung zwischen den untergeordneten Zeichenfolgen angibt. strncmp
ist eine Version von _strnicmp
, bei der die Groß-/Kleinschreibung zu beachten ist. wcsncmp
und _mbsncmp
sind Versionen von _wcsnicmp
und _mbsnicmp
, bei denen ebenfalls die Groß-/Kleinschreibung zu beachten ist.
wcsncmp
und _mbsncmp
sind Breitzeichen- und Multibytezeichenversionen von strncmp
. Bei den Argumenten handelt es wcsncmp
sich um Zeichenfolgen mit breitem Zeichen. Die Argumente sind _mbsncmp
Multibyte-Zeichenfolgen. _mbsncmp
erkennt Multibyte-Zeichenfolge entsprechend einer Multibyte-Codepage und gibt im Falle eines Fehlers _NLSCMPERROR
zurück.
Darüber hinaus überprüfen _mbsncmp
_mbsncmp_l
auch Parameter. Wenn string1
oder string2
ein Nullzeiger ist und count
nicht gleich 0 ist, wird der ungültige Parameterhandler aufgerufen, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben _mbsncmp
und _mbsncmp_l
den Wert _NLSCMPERROR
zurück und setzen errno
auf EINVAL
. strncmp
und wcsncmp
überprüfen Sie ihre Parameter nicht. Anderenfalls verhalten sich diese Funktionen identisch.
Das Vergleichsverhalten von _mbsncmp
und _mbsncmp_l
wird durch die Einstellung der LC_CTYPE
-Kategorieeinstellung des Gebietsschemas beeinflusst. Hierdurch wird die Erkennung von vorangestellten und nachfolgenden Bytes von Multibytezeichen gesteuert. Weitere Informationen finden Sie unter setlocale
. Die _mbsncmp
-Funktion verwendet das aktuelle Gebietsschema für dieses gebietsschemaabhängige Verhalten. Die _mbsncmp_l
-Funktion ist identisch, abgesehen davon, dass sie stattdessen den locale
-Parameter verwendet. Weitere Informationen finden Sie unter Locale. Wenn das Gebietsschema ein Einzelbyte-Gebietsschema ist, ist das Verhalten dieser Funktionen identisch mit strncmp
.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Mapping generischer Textroutinen
TCHAR.H -Routine |
_UNICODE und _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsnccmp |
strncmp |
_mbsncmp |
wcsncmp |
_tcsncmp |
strncmp |
_mbsnbcmp |
wcsncmp |
_tccmp |
Führt eine Zuordnung zum Makro oder zur Inlinefunktion aus | _mbsncmp |
Führt eine Zuordnung zum Makro oder zur Inlinefunktion aus |
Anforderungen
Routine | Erforderlicher Header |
---|---|
strncmp |
<string.h> |
wcsncmp |
<string.h> oder <wchar.h> |
_mbsncmp , _mbsncmp_l |
<mbstring.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_strncmp.c
#include <string.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 %s\n\n",
string1, string2 );
printf( "Function: strncmp (first 10 characters only)\n" );
result = strncmp( string1, string2 , 10 );
if( result > 0 )
strcpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
strcpy_s( tmp, sizeof(tmp), "less than" );
else
strcpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n\n", tmp );
printf( "Function: strnicmp _strnicmp (first 10 characters only)\n" );
result = _strnicmp( string1, string2, 10 );
if( result > 0 )
strcpy_s( tmp, sizeof(tmp), "greater than" );
else if( result < 0 )
strcpy_s( tmp, sizeof(tmp), "less than" );
else
strcpy_s( tmp, sizeof(tmp), "equal to" );
printf( "Result: String 1 is %s string 2\n", tmp );
}
Compare strings:
The quick brown dog jumps over the lazy fox
The QUICK brown fox jumps over the lazy dog
Function: strncmp (first 10 characters only)
Result: String 1 is greater than string 2
Function: strnicmp _strnicmp (first 10 characters only)
Result: String 1 is equal to string 2
Siehe auch
Zeichenfolgenbearbeitung
Gebietsschema
Interpretation von Multibytezeichensequenzen
_mbsnbcmp
, _mbsnbcmp_l
_mbsnbicmp
, _mbsnbicmp_l
strcmp
, wcscmp
_mbscmp
strcoll
-Funktionen
_strnicmp
, , _wcsnicmp
_mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strrchr
, , wcsrchr
_mbsrchr
_mbsrchr_l
_strset
, , _strset_l
_wcsset
, _wcsset_l
, , _mbsset
_mbsset_l
strspn
, , wcsspn
_mbsspn
_mbsspn_l