memcmp
, wmemcmp
İki arabellekteki karakterleri karşılaştırır.
Sözdizimi
int memcmp(
const void *buffer1,
const void *buffer2,
size_t count
);
int wmemcmp(
const wchar_t * buffer1,
const wchar_t * buffer2,
size_t count
);
Parametreler
buffer1
İlk arabellek.
buffer2
İkinci arabellek.
count
Karşılaştıracak karakter sayısı. (için memcmp
baytları karşılaştırır, için geniş karakterler wmemcmp
).
Dönüş değeri
Dönüş değeri, arabellekler arasındaki ilişkiyi gösterir.
Dönüş değeri | ve'in ilk count karakterlerinin buf1 ilişkisi buf2 |
---|---|
< 0 | buffer1 küçüktür buffer2 |
0 | buffer1 özdeş buffer2 |
> 0 | buffer1 büyüktür buffer2 |
Açıklamalar
ve buffer2
öğesinin ilk count
karakterlerini buffer1
karşılaştırır ve ilişkilerini gösteren bir değer döndürür. Sıfır olmayan dönüş değerinin işareti, arabelleklerdeki ilk farklı değer çifti arasındaki farkın işaretidir. Değerler için ve için memcmp
olarak unsigned char
wchar_t
wmemcmp
yorumlanır.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
memcmp |
<memory.h> veya <string.h> |
wmemcmp |
<wchar.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Kitaplıklar
C çalışma zamanı kitaplığının tüm sürümleri.
Örnek
// 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.
Ayrıca bkz.
Arabellek işleme
_memccpy
memchr
, wmemchr
memcpy
, wmemcpy
memset
, wmemset
strcmp
, wcscmp
, _mbscmp
strncmp
, wcsncmp
, _mbsncmp
, _mbsncmp_l