memcmp() prototype
int memcmp( const void* lhs, const void* rhs, size_t count );
The memcmp()
function takes three arguments: lhs, rhs and count. This function first interprets the objects pointed to by lhs and rhs as arrays of unsigned char
. Then it compares the first count characters of lhs and rhs lexicographically.
It is defined in <cstring> header file.
memcmp() Parameters
lhs and rhs
: Pointer to the memory objects to compare.count
: Maximum numbers of bytes to compare.
memcmp() Return value
The memcmp() function returns a:
- positive value if the first differing byte in
lhs
is greater than the corresponding byte inrhs
. - negative value if the first differing byte in
lhs
is less than the corresponding byte inrhs
. - 0 if the first count bytes of
lhs
andrhs
are equal.
Example: How memcmp() function works
#include <cstring>
#include <iostream>
using namespace std;
void display(char *lhs, char *rhs, int result, int count)
{
if(result > 0)
cout << rhs << " precedes " << lhs << endl;
else if (result < 0)
cout << lhs << " precedes " << rhs << endl;
else
cout << "First " << count << " characters of " << lhs << " and " << rhs << " are same" << endl;
}
int main()
{
char lhs[] = "Hello World!";
char rhs[] = "Hello Earth!";
int result;
result = memcmp(lhs, rhs, 5);
display(lhs, rhs, result, 5);
result = memcmp(lhs, rhs, 7);
display(lhs, rhs, result, 7);
return 0;
}
When you run the program, the output will be:
First 5 characters of Hello World! and Hello Earth! are same Hello Earth! precedes Hello World!