Defined in header <cstring> | ||||
---|---|---|---|---|
|
Compares two null-terminated byte strings lexicographically.
The sign of the result is the sign of the difference between the values of the first pair of characters (both interpreted as unsigned char
) that differ in the strings being compared.
The behavior is undefined if lhs
or rhs
are not pointers to null-terminated strings.
Parameters
lhs, rhs | - | pointers to the null-terminated byte strings to compare |
Return value
Negative value if lhs
appears before rhs
in lexicographical order.
Zero if lhs
and rhs
compare equal.
Positive value if lhs
appears after rhs
in lexicographical order.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <vector> #include <cstring> #include <algorithm> #include <iostream> int main() { std::vector< const char *> cats { "Heathcliff" , "Snagglepuss" , "Hobbes" , "Garfield" }; std::sort(cats.begin(), cats.end(), []( const char *strA, const char *strB) { return std:: strcmp (strA, strB) < 0; }); for ( const char *cat : cats) { std::cout << cat << '\n' ; } } |
Output:
1 2 3 4 | Garfield Heathcliff Hobbes Snagglepuss |
See also
compares a certain amount of characters of two strings (function) | |
compares two wide strings (function) | |
compares two buffers (function) | |
compares two strings in accordance to the current locale (function) | |
C documentation for strcmp |
Please login to continue.