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

std::strcmp

Материал из cppreference.com
< cpp‎ | string‎ | byte
 
 
 
Однобайтовые строки с завершающим нулём
Функции
Манипуляции с символами
Преобразование в числовые форматы
Манипуляции со строками
Проверка строки
Манипуляции с памятью
Разное
 
Определено в заголовочном файле <cstring>
int strcmp(constchar*lhs, constchar*rhs );

Лексикографически сравнивает две строки байтов с нулевым завершающим символом.

Знак результата это знак разницы между значениями первой пары символов (оба интерпретируются как unsignedchar), которые различаются в сравниваемых строках.

Поведение не определено, если lhs или rhs не являются указателями на строки с нулевым завершающим символом.

Содержание

[править]Параметры

lhs, rhs указатели на строки байтов с нулевым завершающим символом для сравнения

[править]Возвращаемое значение

Отрицательное значение, если lhs находится перед rhs в лексикографическом порядке.

Ноль, если lhs и rhs равны.

Положительное значение, если lhs находится после rhs в лексикографическом порядке.

[править]Пример

#include <algorithm>#include <cstring>#include <iostream>#include <vector>   int main(){std::vector<constchar*> cats{"Heathcliff", "Snagglepuss", "Hobbes", "Garfield"};std::sort(cats.begin(), cats.end(), [](constchar*strA, constchar*strB){return std::strcmp(strA, strB)<0;});   for(constchar*cat : cats)std::cout<< cat <<'\n';}

Вывод:

Garfield Heathcliff Hobbes Snagglepuss

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

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