Export (0) Print
Expand All
div
eof
Expand Minimize
1 out of 1 rated this helpful - Rate this topic

_memicmp, _memicmp_l 

Compares characters in two buffers (case-insensitive).


int _memicmp(
   const void *buf1,
   const void *buf2,
   size_t count 
);
int _memicmp_l(
   const void *buf1,
   const void *buf2,
   size_t count,
   _locale_t locale
);

Parameters

buf1

First buffer.

buf2

Second buffer.

count

Number of characters.

locale

Locale to use.

The return value indicates the relationship between the buffers.

Return value Relationship of first count bytes of buf1 and buf2

< 0

buf1 less than buf2.

0

buf1 identical to buf2.

> 0

buf1 greater than buf2.

_NLSCMPERROR

An error occurred.

The _memicmp function compares the first count characters of the two buffers buf1 and buf2 byte by byte. The comparison is not case-sensitive.

If either buf1 or buf2 is a null pointer, this function invokes an invalid parameter handler, as described in Parameter Validation. If execution is allowed to continue, the function returns _NLSCMPERROR and sets errno to EINVAL.

_memicmp uses the current locale for locale-dependent behavior; _memicmp_l is identical except that it uses the locale passed in instead.

Routine Required header Compatibility

_memicmp

<memory.h> or <string.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

_memicmp_l

<memory.h> or <string.h>

Windows 95, Windows 98, Windows 98 Second Edition, Windows Millennium Edition, Windows NT 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003

For more compatibility information, see Compatibility in the Introduction.

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

Output

Compare 'Those Who Will Not Learn from' to 'THOSE WHO WILL NOT LEARN FROM'
First is equal to second.

Not applicable. To call the standard C function, use PInvoke. For more information, see Platform Invoke Examples.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft. All rights reserved.