Freigeben über


_memicmp, _memicmp_l

Vergleicht Zeichen in zwei Puffern (ohne Berücksichtigung der Groß- und Kleinschreibung).

Syntax

int _memicmp(
   const void *buffer1,
   const void *buffer2,
   size_t count
);
int _memicmp_l(
   const void *buffer1,
   const void *buffer2,
   size_t count,
   _locale_t locale
);

Parameter

buffer1
Erster Puffer.

buffer2
Zweite Puffer.

count
Anzahl der Zeichen.

locale
Zu verwendendes Gebietsschema.

Rückgabewert

Der Rückgabewert gibt die Beziehung zwischen den Puffern an.

Rückgabewert Beziehung der ersten count-Zeichen von buf1 und buf2
< 0 buffer1 kleiner alsbuffer2.
0 buffer1 identisch mit buffer2.
> 0 buffer1 größer alsbuffer2.
_NLSCMPERROR Ein Fehler ist aufgetreten.

Hinweise

Die _memicmp-Funktion vergleicht die ersten count-Zeichen der beiden Puffer buffer1 und buffer2 Byte für Byte miteinander. Bei dem Vergleich wird die Groß-/Kleinschreibung nicht beachtet.

Wenn es sich um buffer1 buffer2 einen Nullzeiger handelt, ruft diese Funktion einen ungültigen Parameterhandler auf, wie in der Parameterüberprüfung beschrieben. Wenn die weitere Ausführung zugelassen wird, gibt die Funktion _NLSCMPERROR zurück und setzt errno auf EINVAL.

_memicmp verwendet das aktuelle Gebietsschema für jedes Verhalten, das vom Gebietsschema abhängig ist; _memicmp_l ist identisch, nur dass sie stattdessen das übergebene Gebietsschema verwendet. Weitere Informationen finden Sie unter Locale.

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.

Anforderungen

Routine Erforderlicher Header
_memicmp <memory.h> oder <string.h>
_memicmp_l <memory.h> oder <string.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

// crt_memicmp.c
// This program uses _memicmp to compare
// the first 29 letters of the strings named first and
// second without regard to the case of the letters.

#include <memory.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   int result;
   char first[] = "Those Who Will Not Learn from History";
   char second[] = "THOSE WHO WILL NOT LEARN FROM their mistakes";
   // Note that the 29th character is right here ^

   printf( "Compare '%.29s' to '%.29s'\n", first, second );
   result = _memicmp( first, second, 29 );
   if( result < 0 )
      printf( "First is less than second.\n" );
   else if( result == 0 )
      printf( "First is equal to second.\n" );
   else if( result > 0 )
      printf( "First is greater than second.\n" );
}
Compare 'Those Who Will Not Learn from' to 'THOSE WHO WILL NOT LEARN FROM'
First is equal to second.

Siehe auch

Pufferbearbeitung
_memccpy
memchr, wmemchr
memcmp, wmemcmp
memcpy, wmemcpy
memset, wmemset
_stricmp, , _wcsicmp_mbsicmp, _stricmp_l, , _wcsicmp_l_mbsicmp_l
_strnicmp, , _wcsnicmp_mbsnicmp, _strnicmp_l, , _wcsnicmp_l_mbsnicmp_l