Standards / Extensions | C or C++ | Dependencies |
---|---|---|
ISO C |
both |
#include <string.h>
int memcmp(const void *buf1, const void *buf2, size_t count);
The memcmp() built-in function compares the first count bytes of buf1 and buf2.
The relation is determined by the sign of the difference between the values of the leftmost first pair of bytes that differ. The values depend on EBCDIC encoding. This function is not locale sensitive.
⁄* CELEBM12
This example compares first and second arguments passed to
main to determine which, if either, is greater.
*⁄
#include <stdio.h>
#include <string.h>
int main(int argc, char ** argv)
{
int len;
int result;
if ( argc != 3 )
{
printf( "Usage: %s string1 string2\n", argv[0] );
}
else
{
⁄* Determine the length to be used for comparison *⁄
if (strlen( argv[1] ) < strlen( argv[2] ))
len = strlen( argv[1] );
else
len = strlen( argv[2] );
result = memcmp( argv[1], argv[2], len );
printf( "When the first %i characters are compared,\n", len );
if ( result == 0 )
printf( "\"%s\" is identical to \"%s\"\n", argv[1], argv[2] );
else if ( result < 0 )
printf( "\"%s\" is less than \"%s\"\n", argv[1], argv[2] );
else
printf( "\"%s\" is greater than \"%s\"\n", argv[1], argv[2] );
}
}
Output
When the first 11 characters are compared,
“firststring” is less than “secondstring”