Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer


Compares characters in two buffers (case-insensitive).

int _memicmp(
   const void *buf1,
   const void *buf2,
   size_t count 


First buffer.
Second buffer.
Number of characters.

Return Value

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


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


Routine Required header Compatibility
_memicmp <memory.h> or <string.h> Win 98, Win Me, Win NT, Win 2000, Win XP

For additional compatibility information, see Compatibility in the Introduction.


All versions of the C run-time libraries.


// 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.

See Also

Buffer Manipulation Routines | _memccpy | memchr | memcmp | memcpy | memset | _stricmp | _strnicmp | Run-Time Routines and .NET Framework Equivalents

© 2015 Microsoft