Spec-Zone.ru › C++

std::strcmp

Defined in header <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/w/cpp/string/byte/strcmp

Spec-Zone.ru

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