std::strcmp
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <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
| |