Namespaces
Variants

std:: strcmp

From cppreference.net
Определено в заголовочном файле <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

Смотрите также

сравнивает определённое количество символов из двух строк
(функция)
сравнивает две широкие строки
(функция)
сравнивает два буфера
(функция)
сравнивает две строки в соответствии с текущей локалью
(функция)