Namespaces
Variants

wcscmp

From cppreference.net
< c ‎ | string ‎ | wide
Определено в заголовочном файле <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:2024):
  • 7.29.4.4.1 Функция wcscmp (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.29.4.4.1 Функция wcscmp (стр.: TBD)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.29.4.4.1 Функция wcscmp (стр: 433)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.24.4.4.1 Функция wcscmp (стр: 379)

Смотрите также

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