Share via


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 unter CRT-Funktionen nicht mit /ZW unterstützt.

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 Parametervalidierungsfehler geben _mbsncmp_l und _mbsncmp _NLSCMPERROR zurück (definiert 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. wcsncmpund _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. Die Argumente von wcsncmp sind Breitzeichen-Zeichenfolgen, die von _mbsncmp sind 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 NULL-Zeiger ist, wird, wie in Parametervalidierung beschrieben, der Handler für ungültige Parameter aufgerufen. 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 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.

Zuordnung 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

Nicht zutreffend

Nicht zutreffend

_mbsncmp_l

Nicht zutreffend

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

.NET Framework-Entsprechung

System::String::Compare

Siehe auch

Referenz

Zeichenfolgenbearbeitung (CRT)

Locale

Interpretation von Mehrbytezeichensequenzen

_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