_strncoll
, , _wcsncoll
_strncoll_l
_mbsncoll
_wcsncoll_l
,_mbsncoll_l
Сравнивает строки на основе данных языкового стандарта.
Внимание
Функции _mbsncoll
и _mbsncoll_l
не могут использоваться в приложениях, запускаемых в среде выполнения Windows. Дополнительные сведения: Функции CRT, которые не поддерживаются в приложениях универсальной платформы Windows.
Синтаксис
int _strncoll(
const char *string1,
const char *string2,
size_t count
);
int _wcsncoll(
const wchar_t *string1,
const wchar_t *string2,
size_t count
);
int _mbsncoll(
const unsigned char *string1,
const unsigned char *string2,
size_t count
);
int _strncoll_l(
const char *string1,
const char *string2,
size_t count,
_locale_t locale
);
int _wcsncoll_l(
const wchar_t *string1,
const wchar_t *string2,
size_t count,
_locale_t locale
);
int _mbsncoll_l(
const unsigned char *string1,
const unsigned char *string2,
size_t count,
_locale_t locale
);
Параметры
string1
, string2
Строки с завершающим нулем для сравнения.
count
Число сравниваемых символов.
locale
Используемый языковой стандарт.
Возвращаемое значение
Каждая из этих функций возвращает значение, идентифицирующее отношение между подстроками string1
и string2
, как показано ниже.
Возвращаемое значение | string1 Отношение кstring2 |
---|---|
< 0 | string1 меньше string2 . |
0 | Функция string1 идентична функции string2 . |
> 0 | string1 больше string2 . |
Каждая из этих функций возвращает _NLSCMPERROR
. Чтобы использовать функцию _NLSCMPERROR
, включите STRING.h или MBSTRING.h. _wcsncoll
может завершиться ошибкой, если string1
или string2
содержит коды расширенных символов, не входящие в последовательность сортировки. При возникновении ошибки _wcsncoll
может присвоить параметру errno
значение EINVAL
. Чтобы проверить наличие ошибки при вызове _wcsncoll
, задайте errno
значение 0, а затем проверьте errno
после _wcsncoll
вызова.
Замечания
Каждая из этих функций сравнивает с учетом регистра первые несколько символов в строках string1
и string2
на основе кодовой страницы, используемой в данный момент (количество сравниваемых символов определяется параметром count
). Используйте эти функции только в том случае, если в кодовой странице имеется разница между порядком набора символов и лексографическим порядком символов, а также когда это различие имеет значение для сравнения строк. Порядок символов в наборе зависит от языкового стандарта. В версиях этих функций без суффикса _l
используется текущий языковой стандарт, а в версиях с суффиксом _l
— переданный параметр языкового стандарта. Дополнительные сведения см. в разделе Locale.
Все эти функции проверяют свои параметры. Если указатель string1
string2
имеет значение NULL или count
больше INT_MAX
, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции возвращают _NLSCMPERROR
и устанавливают для errno
значение EINVAL
.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcsnccoll |
_strncoll |
_mbsncoll |
_wcsncoll |
_tcsncoll |
_strncoll |
_mbsnbcoll |
_wcsncoll |
Требования
Маршрут | Обязательный заголовок |
---|---|
_strncoll , _strncoll_l |
<string.h> |
_wcsncoll , _wcsncoll_l |
<wchar.h> или <string.h> |
_mbsncoll , _mbsncoll_l |
<mbstring.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Локаль
Обработка строк
Функции strcoll
localeconv
_mbsnbcoll
, , _mbsnbcoll_l
_mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, , wcscmp
_mbscmp
_stricmp
, , _wcsicmp
_stricmp_l
_mbsicmp
_wcsicmp_l
,_mbsicmp_l
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
_strnicmp
, , _wcsnicmp
_strnicmp_l
_mbsnicmp
_wcsnicmp_l
,_mbsnicmp_l
strxfrm
, , wcsxfrm
_strxfrm_l
_wcsxfrm_l