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.
Lihat juga
Manipulasi buffer
_memccpy
memchr
, wmemchr
memcpy
, wmemcpy
memset
, wmemset
strcmp
, , wcscmp
_mbscmp
strncmp
, , wcsncmp
_mbsncmp
,_mbsncmp_l