◐ Shell
clean mode source ↗

std::strcmp — cppreference.com

Материал из 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

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