Share via


memcmp, wmemcmp

Membandingkan karakter dalam dua buffer.

Sintaks

int memcmp(
   const void *buffer1,
   const void *buffer2,
   size_t count
);
int wmemcmp(
   const wchar_t * buffer1,
   const wchar_t * buffer2,
   size_t count
);

Parameter

buffer1
Buffer pertama.

buffer2
Buffer kedua.

count
Jumlah karakter yang akan dibandingkan. (Membandingkan byte untuk memcmp, karakter lebar untuk wmemcmp).

Nilai hasil

Nilai pengembalian menunjukkan hubungan antara buffer.

Nilai hasil Hubungan karakter buf1 pertama count danbuf2
< 0 buffer1 Kurang buffer2
0 buffer1 identik dengan buffer2
> 0 buffer1 lebih besar dari buffer2

Keterangan

Membandingkan karakter buffer1 pertama count dan dan buffer2 mengembalikan nilai yang menunjukkan hubungannya. Tanda nilai pengembalian bukan nol adalah tanda perbedaan antara pasangan nilai pertama yang berbeda dalam buffer. Nilai ditafsirkan sebagai unsigned char untuk memcmp, dan sebagai wchar_t untuk wmemcmp.

Persyaratan

Rutin Header yang diperlukan
memcmp <memory.h> atau <string.h>
wmemcmp <wchar.h>

Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.

Pustaka

Semua versi pustaka run-time C.

Contoh

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

Baca juga

Manipulasi buffer
_memccpy
memchr, wmemchr
memcpy, wmemcpy
memset, wmemset
strcmp, wcscmp, _mbscmp
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l