memcmp
, wmemcmp
Compare les caractères dans deux mémoires tampons.
Syntaxe
int memcmp(
const void *buffer1,
const void *buffer2,
size_t count
);
int wmemcmp(
const wchar_t * buffer1,
const wchar_t * buffer2,
size_t count
);
Paramètres
buffer1
Première mémoire tampon.
buffer2
Seconde mémoire tampon.
count
Nombre de caractères à comparer. (Compare les octets dans le cas de memcmp
, et les caractères larges dans le cas de wmemcmp
).
Valeur retournée
La valeur de retour indique la relation entre les mémoires tampons.
Valeur retournée | Relation des premiers count caractères et buf1 buf2 |
---|---|
< 0 | buffer1 inférieure à buffer2 |
0 | buffer1 identique à buffer2 |
> 0 | buffer1 supérieur à buffer2 |
Notes
Compare les count
premiers caractères de buffer1
et buffer2
et retourne une valeur qui indique leur relation. Le signe d’une valeur de retour non Nulle est le signe de la différence entre la première paire de valeurs différente dans les mémoires tampons. Les valeurs sont interprétées en tant que unsigned char
pour memcmp
et que wchar_t
pour wmemcmp
.
Spécifications
Routine | En-tête requis |
---|---|
memcmp |
<memory.h> ou <string.h> |
wmemcmp |
<wchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Bibliothèques
Toutes les versions de la bibliothèque Runtime C.
Exemple
// 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.
Voir aussi
Manipulation de la mémoire tampon
_memccpy
memchr
, wmemchr
memcpy
, wmemcpy
memset
, wmemset
strcmp
, , wcscmp
_mbscmp
strncmp
, , wcsncmp
_mbsncmp
, ,_mbsncmp_l