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
| |