wmemcmp
|
Определено в заголовочном файле
<wchar.h>
|
||
|
int
wmemcmp
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs,
size_t
count
)
;
|
(начиная с C95) | |
Сравнивает первые count широких символов массивов широких символов (или совместимых целочисленных типов), на которые указывают lhs и rhs . Сравнение выполняется лексикографически.
Знак результата определяется знаком разности между значениями первой пары широких символов, которые различаются в сравниваемых массивах.
Если
count
равен нулю, функция ничего не делает.
Содержание |
Параметры
| lhs, rhs | - | указатели на массивы широких символов для сравнения |
| count | - | количество проверяемых широких символов |
Возвращаемое значение
Отрицательное значение, если значение первого различающегося широкого символа в lhs меньше значения соответствующего широкого символа в rhs : lhs предшествует rhs в лексикографическом порядке.
0 если все count широких символов lhs и rhs равны.
Положительное значение, если значение первого различающегося широкого символа в lhs больше значения соответствующего широкого символа в rhs : rhs предшествует lhs в лексикографическом порядке.
Примечания
Эта функция не зависит от локали и не обращает внимания на значения объектов wchar_t , которые она проверяет: нулевые символы, а также недопустимые широкие символы также сравниваются.
Пример
#include <locale.h> #include <stdio.h> #include <wchar.h> void demo(const wchar_t* lhs, const wchar_t* rhs, size_t sz) { for (size_t n = 0; n < sz; ++n) putwchar(lhs[n]); int rc = wmemcmp(lhs, rhs, sz); if (rc == 0) wprintf(L" compares equal to "); else if(rc < 0) wprintf(L" precedes "); else if(rc > 0) wprintf(L" follows "); for (size_t n = 0; n < sz; ++n) putwchar(rhs[n]); wprintf(L" in lexicographical order\n"); } int main(void) { setlocale(LC_ALL, "en_US.utf8"); wchar_t a1[] = {L'α',L'β',L'γ'}; wchar_t a2[] = {L'α',L'β',L'δ'}; size_t sz = sizeof a1 / sizeof *a1; demo(a1, a2, sz); demo(a2, a1, sz); demo(a1, a1, sz); }
Вывод:
αβγ precedes αβδ in lexicographical order αβδ follows αβγ in lexicographical order αβγ compares equal to αβγ in lexicographical order
Ссылки
- Стандарт C23 (ISO/IEC 9899:2024):
-
- 7.29.4.4.5 Функция wmemcmp (стр.: TBD)
- Стандарт C17 (ISO/IEC 9899:2018):
-
- 7.29.4.4.5 Функция wmemcmp (стр.: TBD)
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.29.4.4.5 Функция wmemcmp (стр. 435)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.24.4.4.5 Функция wmemcmp (стр: 381)
Смотрите также
|
(C95)
|
сравнивает две широкие строки
(функция) |
|
сравнивает два буфера
(функция) |
|
|
(C95)
|
сравнивает определённое количество символов из двух широких строк
(функция) |
|
C++ documentation
для
wmemcmp
|
|