std::strcmp
Defined in header <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/w/cpp/string/byte/strcmp