Пространства имён
Варианты
Действия

std::strcmp

Материал из cppreference.com
< cpp‎ | string‎ | byte
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
(C++11)(C++11)
(C++11)(C++11)
Манипуляции со строками
Проверка строки
Манипуляции с памятью
Разное
 
Определено в заголовочном файле <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

[править] Смотрите также

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