std::memcmp
From cppreference.com
Defined in header
<cstring>
|
||
int memcmp( const void* lhs, const void* rhs, std::size_t count );
|
||
Reinterprets the objects pointed to by lhs
and rhs
as arrays of unsigned char and compares the first count
characters of these arrays. The comparison is done lexicographically.
Contents |
[edit] Parameters
lhs, rhs | - | pointers to the memory buffers to compare |
count | - | number of bytes to examine |
[edit] Return value
Negative value if the first differing byte (reinterpreted as unsigned char) in lhs
is less than the corresponding byte in rhs
.
0 if all count
bytes of lhs
and rhs
are equal.
Positive value if the first differing byte in lhs
is greater than the corresponding byte in rhs
.
[edit] Notes
This function reads object representations, not the object values, and is typically meaningful for trivially-copyable objects only. For example, memcmp()
between two objects of type std::string or std::vector will not compare their contents.
[edit] Example
Run this code
#include <iostream> #include <cstring> int main() { char a1[] = {'a', 'b', 'c'}; char a2[] = {'a', 'b', 'd'}; std::cout << "'abc' vs 'abd': " << std::memcmp(a1, a2, sizeof a1) << '\n' << "'abd' vs 'abc': " << std::memcmp(a2, a1, sizeof a1) << '\n' << "'abc' vs 'abc': " << std::memcmp(a1, a1, sizeof a1) << '\n'; }
Output:
'abc' vs 'abd': -1 'abd' vs 'abc': 1 'abc' vs 'abc': 0
[edit] See also
compares two strings (function) |
|
compares a certain amount of characters of two strings (function) |
|
C documentation for memcmp
|