wcsncmp
|
Определено в заголовочном файле
<wchar.h>
|
||
|
int
wcsncmp
(
const
wchar_t
*
lhs,
const
wchar_t
*
rhs,
size_t
count
)
;
|
(начиная с C95) | |
Сравнивает не более
count
широких символов двух широких строк с нулевым завершением. Сравнение выполняется лексикографически.
Знак результата — это знак разности между значениями первой пары широких символов, которые различаются в сравниваемых строках.
Поведение не определено, если
lhs
или
rhs
не являются указателями на строки с нулевым завершением.
Содержание |
Параметры
| lhs, rhs | - | указатели на сравниваемые широкие строки с нулевым завершением |
| count | - | максимальное количество символов для сравнения |
Возвращаемое значение
Отрицательное значение, если
lhs
появляется перед
rhs
в лексикографическом порядке.
Ноль, если
lhs
и
rhs
сравниваются как равные.
Положительное значение, если
lhs
следует после
rhs
в лексикографическом порядке.
Примечания
Эта функция не зависит от локали, в отличие от wcscoll и wcsxfrm .
Пример
#include <stdio.h> #include <wchar.h> #include <locale.h> void demo(const wchar_t *lhs, const wchar_t *rhs, int sz) { int rc = wcsncmp(lhs, rhs, sz); if(rc == 0) printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs); else if(rc < 0) printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs); else if(rc > 0) printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs); } int main(void) { const wchar_t *str1 = L"안녕하세요"; const wchar_t *str2 = L"안녕히 가십시오"; setlocale(LC_ALL, "en_US.utf8"); demo(str1, str2, 5); demo(str2, str1, 8); demo(str1, str2, 2); }
Вывод:
First 5 characters of [안녕하세요] precede [안녕히 가십시오] First 8 characters of [안녕히 가십시오] follow [안녕하세요] First 2 characters of [안녕하세요] equal [안녕히 가십시오]
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
-
- 7.29.4.4.3 Функция wcsncmp (стр. 434)
- Стандарт C99 (ISO/IEC 9899:1999):
-
- 7.24.4.4.3 Функция wcsncmp (стр. 380)
Смотрите также
|
(C95)
|
сравнивает две широкие строки
(функция) |
|
(C95)
|
сравнивает определённое количество широких символов из двух массивов
(функция) |
|
(C95)
|
сравнивает две широкие строки в соответствии с текущей локалью
(функция) |
|
Документация C++
для
wcsncmp
|
|