The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.
We recommend using Visual Studio 2017

memcmp, wmemcmp


The latest version of this topic can be found at memcmp, wmemcmp.

Compares characters in two buffers.

      int memcmp(  
   const void *buf1,  
   const void *buf2,  
   size_t count  
int wmemcmp(  
   const wchar_t * buf1,  
   const wchar_t * buf2,  
   size_t count  


First buffer.

Second buffer.

Number of characters to compare. (Compares bytes for memcmp, wide characters for wmemcmp).

The return value indicates the relationship between the buffers.

Return valueRelationship of first count characters of buf1 and buf2
< 0buf1 less than buf2
0buf1 identical to buf2
> 0buf1 greater than buf2

Compares the first count characters of buf1 and buf2 and returns a value that indicates their relationship. The sign of a non-zero return value is the sign of the difference between the first differing pair of values in the buffers. The values are interpreted as unsigned char for memcmp, and as wchar_t for wmemcmp.

RoutineRequired header
memcmp<memory.h> or <string.h>

For additional compatibility information, see Compatibility.

All versions of the C run-time library.

      // crt_memcmp.c  
/* This program uses memcmp to compare  
 * the strings named first and second. If the first  
 * 19 bytes of the strings are equal, the program  
 * considers the strings to be equal.  
#include <string.h>  
#include <stdio.h>  
int main( void )  
   char first[]  = "12345678901234567890";  
   char second[] = "12345678901234567891";  
   int int_arr1[] = {1,2,3,4};  
   int int_arr2[] = {1,2,3,4};  
   int result;  
   printf( "Compare '%.19s' to '%.19s':\n", first, second );  
   result = memcmp( first, second, 19 );  
   if( result < 0 )  
      printf( "First is less than second.\n" );  
   else if( result == 0 )  
      printf( "First is equal to second.\n" );  
      printf( "First is greater than second.\n" );  
   printf( "Compare '%d,%d' to '%d,%d':\n", int_arr1[0], int_arr1[1], int_arr2[0], int_arr2[1]);  
   result = memcmp( int_arr1, int_arr2, sizeof(int) * 2 );  
   if( result < 0 )  
      printf( "int_arr1 is less than int_arr2.\n" );  
   else if( result == 0 )  
      printf( "int_arr1 is equal to int_arr2.\n" );  
      printf( "int_arr1 is greater than int_arr2.\n" );  

Compare '1234567890123456789' to '1234567890123456789':  
First is equal to second.  
Compare '1,2' to '1,2':  
int_arr1 is equal to int_arr2.  

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

Buffer Manipulation
memchr, wmemchr
memcpy, wmemcpy
memset, wmemset
strcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l