std::strncmp

From cppreference.com
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 8 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)