##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# strcmp

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

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

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

### [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 <string.h>
    #include <stdio.h>

    int main()
    {
        const char* string = "Hello World!";

        //Matches
        int a = strcmp(string, "Hello World!");
        if (a == 0) {
            printf("Strings are matching.\n");
        }

        //Greater than
        int b = strcmp(string, "Hello");
        if (b >= 1) {
            printf("Left hand side is bigger than right hand side.\n");
        }

        //less than
        int c = strcmp(string, "Hello there world!");
        if (c <= -1) {
            printf("Left hand side is smaller than right hand side.\n");
        }
    }

Output:

    Strings are matching.
    Left hand side is bigger than right hand side.
    Left hand side is smaller than right hand side.

### [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=c/string/byte/strcmp&oldid=65379"