strncmp, wcsncmp, _mbsncmp, _mbsncmp_l

Vergleichen Sie Zeichen von zwei Zeichenfolgen, unter Verwendung des aktuellen Gebietsschemas oder eines angegebenen Gebietsschemas.

Wichtiger HinweisWichtig

_mbsncmp und _mbsncmp_l können in Anwendungen nicht verwendet werden, die in der Windows Runtime ausführen.Weitere Informationen finden Sie unter CRT-Funktionen unterstützt nicht mit /ZW.

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
    So vergleichen Zeichenfolgen.

  • count
    Zahl Zeichen zu vergleichen.

  • locale
    Zu verwendende Gebietsschema.

Rückgabewert

Der Rückgabewert gibt die Beziehung der Teilzeichenfolgen in string1 und von string2 wie folgt an.

Rückgabewert

Beschreibung

< 0

string1 Teilzeichenfolge kleiner als string2 Teilzeichenfolge

0

string1 Teilzeichenfolge identisch zu string2 Teilzeichenfolge

> 0

string1 Teilzeichenfolge größer als string2 Teilzeichenfolge

Auf einem Fehler gibt _mbsncmp_NLSCMPERROR zurück, der in STRING.H und in MBSTRING.H. definiert ist.

Hinweise

Die strncmp-Funktion vergleicht lexikografisch höchstens die ersten count Zeichen in string1 und in string2 und gibt einen Wert die Beziehung zwischen den Teilzeichenfolgen angibt.strncmp ist eine Groß-/Kleinschreibung Version von _strnicmp.wcsncmp und _mbsncmp wird die Groß-/Kleinschreibung beachtet Versionen von _wcsnicmp und von _mbsnicmp.

wcsncmp und _mbsncmp sind Breitzeich und Mehrbytezeichen-Versionen von strncmp.Die Argumente und der Rückgabewert von wcsncmp sind Breitzeichen-Zeichenfolgen; die von _mbsncmp sind Mehrbyte-Zeichenfolgen._mbsncmp erkennt Mehrbytezeichensequenzen entsprechend der Mehrbyte-Codepage und gibt _NLSCMPERROR auf einem Fehler zurück.

Außerdem _mbsncmp überprüft seine Parameter.Wenn string1 oder string2 ein NULL-Zeiger ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, gibt _mbsncmp_NLSCMPERROR zurück und legt errno zu EINVAL fest.strncmp und wcsncmp überprüfen nicht ihre Parameter.Diese drei Funktionen verhalten sich andernfalls identisch.

Der Ausgabewert wird durch die Einstellung der LC_CTYPE Kategorieneinstellung des Gebietsschemas betroffen; setlocale finden Sie weitere Informationen.Die Versionen dieser Funktionen ohne das _l Suffix verwenden das aktuelle Gebietsschema für dieses Verhalten abhängig; die Versionen mit dem _l Suffix sind identisch, allerdings verwenden den Gebietsschemaparameter, der in stattdessen übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.

Zuordnung generische Textroutinen

TCHAR.H-Routine

_UNICODE & _MBCS nicht definiert.

_MBCS definiert

_UNICODE definiert

_tcsnccmp

strncmp

_mbsncmp

wcsncmp

_tcsncmp

strncmp

_mbsnbcmp

wcsncmp

_tccmp

Zuordnungen zum Makro oder die Inlinefunktion

_mbsncmp

Zuordnungen zum Makro oder die Inlinefunktion

nicht verfügbar

nicht verfügbar

_mbsncmp_l

nicht verfügbar

Anforderungen

Routine

Erforderlicher Header

strncmp

<string.h>

wcsncmp

<string.h> oder <wchar.h>

_mbsncmp, _mbsncmp_l

<mbstring.h>

So zusätzlicher Kompatibilitätsinformation finden Sie unter Kompatibilität in der Einführung.

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)

Gebietsschema

Interpretation von Mehrbytezeichen-Sequenzen

_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