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

std::strcoll

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

Сравнивает две строки байтов с нулевым завершающим символом в соответствии с текущей локалью, определённой категорией LC_COLLATE.

Содержание

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

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

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

  • Отрицательное значение, если lhsменьше чем (предшествует) rhs.
  • 0, если lhsравнаrhs.
  • Положительное значение, если lhsбольше чем (следует за) rhs.

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

Порядок сопоставления это словарный порядок: положение буквы в национальном алфавите (её класс эквивалентности) имеет более высокий приоритет, чем её регистр или вариант. Внутри класса эквивалентности символы в нижнем регистре сопоставляются перед их эквивалентами в верхнем регистре, и к символам с диакритическими знаками может применяться специфичный для локали порядок. В некоторых локалях группы символов сравниваются как отдельные единицы сопоставления. Например, "ch" в чешском языке следует за "h" и предшествует "i", а "dzs" в венгерском языке следует за "dz" и предшествует "g".

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

#include <clocale>#include <cstring>#include <iostream>   int main(){std::setlocale(LC_COLLATE, "cs_CZ.utf8");// Альтернативно, ISO-8859-2 (также известная как Latin-2)// также может работать на некоторых ОС:// std::setlocale(LC_COLLATE, "cs_CZ.iso88592");   constchar* s1 ="hrnec";constchar* s2 ="chrt";   std::cout<<"В чешской локали: ";if(std::strcoll(s1, s2)<0)std::cout<< s1 <<" перед "<< s2 <<'\n';elsestd::cout<< s2 <<" перед "<< s1 <<'\n';   std::cout<<"В лексикографическом сравнении: ";if(std::strcmp(s1, s2)<0)std::cout<< s1 <<" перед "<< s2 <<'\n';elsestd::cout<< s2 <<" перед "<< s1 <<'\n';}

Вывод:

В чешской локали: hrnec перед chrt В лексикографическом сравнении: chrt перед hrnec

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

сравнивает две широких строки в соответствии с текущей локалью
(функция)[править]
[virtual]
сравнение двух строк с использованием сортировки эту грань правилами
Оригинал:
compares two strings using this facet's collation rules
Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.

(virtual protected std::collate функция-элемент)[править]
преобразовывает строку так, чтобы strcmp давала тот же результат, что и strcoll
(функция)[править]
close