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 |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/wide/wcsncmp