std::strcmp
Определён в заголовочном файле <cstring> | ||
|---|---|---|
int strcmp( const char* lhs, const char* rhs ); |
Лексикографически сравнивает две байтовые строки, завершающиеся нулевым символом.
Знак результата совпадает со знаком разности значений первой пары символов (интерпретируемых как unsigned char), которые различаются в сравниваемых строках.
Поведение не определено, если lhs или rhs не являются указателями на строки, завершающиеся нулевым символом.
Параметры
| lhs, rhs | - | указатели на байтовые строки, завершающиеся нулевым символом, для сравнения |
Возвращаемое значение
Отрицательное значение, если lhs предшествует rhs в лексикографическом порядке.
Ноль, если lhs и rhs равны.
Положительное значение, если lhs следует за rhs в лексикографическом порядке.
Пример
#include <algorithm>
#include <cstring>
#include <iostream>
#include <vector>
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';
}
Вывод:
Garfield Heathcliff Hobbes Snagglepuss
См. также
| сравнивает заданное количество символов из двух строк (функция) |
|
| сравнивает две широкие строки (функция) |
|
| сравнивает два буфера (функция) |
|
| сравнивает две строки согласно текущей локали (функция) |
|
Документация C для strcmp |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/strcmp