Defined in header <cstring> | ||
---|---|---|
int strcmp( const char *lhs, const char *rhs ); |
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.
lhs, rhs | - | pointers to the null-terminated byte strings to compare |
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.
#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:
Garfield Heathcliff Hobbes Snagglepuss
compares a certain number of characters from two strings (function) |
|
compares two wide strings (function) |
|
compares two buffers (function) |
|
compares two strings in accordance to the current locale (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/cpp/string/byte/strcmp