std::strncmp

From cppreference.com
< cpp‎ | string‎ | byte
Defined in header <cstring>
int strncmp( const char* lhs, const char* rhs, size_t count );

Compares at most count characters of two null-terminated byte strings. The comparison is done lexicographically.

Contents

[edit] Parameters

lhs, rhs - pointers to the null-terminated byte strings to compare
count - maximum number of characters 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

#include <iostream>
#include <cstring>
 
int main() 
{
    const char world[] = "Hello, world!";
    const char everybody[] = "Hello, everybody!";
    const char somebody[] = "Hello, somebody!";
 
    // Compares 13 characters of "Hello, world!" and "Hello, everybody!"
    std::cout << std::strncmp(world, everybody, sizeof(world) - 1) << '\n';
 
    // Compares 13 characters of "Hello, everybody!" and "Hello, world!"
    std::cout << std::strncmp(everybody, world, sizeof(world) - 1) << '\n';
 
    // Compares 7 characters of "Hello, everybody!" and "Hello, world!"
    std::cout << std::strncmp(everybody, world, sizeof("Hello, ") - 1) << '\n';
 
    // Compares 5 characters of "Hello, everybody!" and "Hello, somebody!"
    //                                       ^                      ^
    std::cout << std::strncmp(&everybody[12], &somebody[11], sizeof("body!") - 1) << '\n';
}

Output:

1
-1
0
0

[edit] See also

compares two strings
(function)
compares two buffers
(function)
compares two strings in accordance to the current locale
(function)
C documentation for strncmp