##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::strcmp

From cppreference.com
< cpp‎ | string‎ | byte

Defined in header `<cstring>` |  |
int strcmp( const char *lhs, const char *rhs ); |  |

Compares two null-terminated byte strings. The comparison is done lexicographically.

Both `lhs` and `rhs` should point to valid strings.

### [edit] Parameters

lhs, rhs | - | pointers to the null-terminated byte strings to compare

### [edit] Return value

Negative value if `lhs` is less than `rhs`.

​0​ if `lhs` is equal to `rhs`.

Positive value if `lhs` is greater than `rhs`.

### [edit] Example

Run this code

    #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

### [edit] See also

strncmp | compares a certain amount of characters of two strings (function) [edit]
memcmp | compares two buffers (function) [edit]
strcoll | compares two strings in accordance to the current locale (function) [edit]
C documentation for strcmp

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/byte/strcmp&oldid=59001"