Spec-Zone.ru › C

wcscmp

Определено в заголовочном файле <wchar.h>
int wcscmp( const wchar_t* lhs, const wchar_t* rhs );
(с C95)

Сравнивает две строковые переменные типа «широкий символ» с нулевым завершением в лексикографическом порядке.

Знак результата соответствует знаку разности значений первой пары широких символов, отличающихся в сравниваемых строках.

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

Параметры

lhs, rhs - указатели на строки с широкими символами, завершёнными нулем, для сравнения

Возвращаемое значение

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

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

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

Примечания

Эта функция не чувствительна к локали, в отличие от wcscoll, и порядок может быть не значимым, когда используются символы из разных блоков Юникода или когда порядок кодовых единиц не соответствует никакому порядку сортировки.

Пример

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
 
void demo(const wchar_t* lhs, const wchar_t* rhs)
{
    int rc = wcscmp(lhs, rhs);
    const char *rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals";
 
    setlocale(LC_ALL, "en_US.utf8");
    printf("[%ls] %s [%ls]\n", lhs, rel, rhs);
}
 
int main(void)
{
    const wchar_t* string = L"どうもありがとうございます";
    demo(string, L"どうも");
    demo(string, L"助かった");
    demo(string + 9, L"ありがとうございます" + 6);
}

Возможный вывод:

[どうもありがとうございます] follows [どうも]
[どうもありがとうございます] precedes [助かった]
[ざいます] equals [ざいます]

Справочные материалы

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.29.4.4.1 Функция wcscmp (p: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.29.4.4.1 Функция wcscmp (p: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.29.4.4.1 Функция wcscmp (p: 433)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.24.4.4.1 Функция wcscmp (p: 379)

См. также

wcsncmp
(C95)
сравнивает определенное количество символов из двух строк с широкими символами
(функция)
wmemcmp
(C95)
сравнивает определенное количество широких символов из двух массивов
(функция)
strcmp
сравнивает две строки
(функция)
wcscoll
(C95)
сравнивает две строки с широкими символами в соответствии с текущей локалью
(функция)
Документация C++ для wcscmp

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/wide/wcscmp

Spec-Zone.ru

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