memcmp, wmemcmp
İki arabellekleri karakter karşılaştırır.
int memcmp(
const void *buf1,
const void *buf2,
size_t count
);
int wmemcmp(
const wchar_t * buf1,
const wchar_t * buf2,
size_t count
);
Parametreler
buf1
İlk arabellek.buf2
İkinci bir arabellek.count
Karşılaştırmak için karakter sayısı. (Bayt karşılaştırır memcmp, geniş karakterler için wmemcmp).
Dönüş Değeri
Dönüş değeri, arabellek arasındaki ilişkiyi gösterir.
Dönüş değeri |
İlk ilişki count buf1 ve buf2 karakterleri |
---|---|
< 0 |
buf1, buf2 parametresinden küçüktür |
0 |
buf1buf2 ile aynı |
> 0 |
buf1, buf2 parametresinden büyüktür. |
Notlar
İlk karşılaştırır count karakter buf1 ve buf2 ve aralarındaki ilişkiyi gösteren bir değeri döndürür.İşareti sıfır olmayan değer oturum arabellek değerleri ilk farklı çifti arasındaki farkın dönüş.Değerler olarak yorumlandığını unsigned char için memcmpve wchar_t için wmemcmp.
Gereksinimler
Yordam |
Gerekli başlık |
---|---|
memcmp |
<Memory.h> veya <string.h> |
wmemcmp |
<wchar.h> |
Ek uyumluluk bilgileri için bkz. Uyumluluk.
Kitaplıklar
Tüm sürümlerini C çalışma zamanı kitaplığı.
Ö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" );
}
Çıktı
Compare '1234567890123456789' to '1234567890123456789':
First is equal to second.
Compare '1,2' to '1,2':
int_arr1 is equal to int_arr2.
.NET Framework Eşdeğeri
Uygulanamaz. Standart C işlevini çağırmak için PInvoke kullanın. Daha fazla bilgi için bkz. Platform Çağırma Örnekleri.