Spec-Zone.ru › C++

std::strcmp

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

См. также

strncmp
сравнивает заданное количество символов из двух строк
(функция)
wcscmp
сравнивает две широкие строки
(функция)
memcmp
сравнивает два буфера
(функция)
strcoll
сравнивает две строки согласно текущей локали
(функция)
Документация C для strcmp

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/byte/strcmp

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API