strncasecmp(3) сравнение двух строк без учёта регистра

Other Alias

strcasecmp

ОБЗОР

#include <strings.h>


int strcasecmp(const char *s1, const char *s2);

int strncasecmp(const char *s1, const char *s2, size_t n);

ОПИСАНИЕ

Функция strcasecmp() выполняет побайтовое сравнение строк s1 и s2, игнорируя регистр символов. Она возвращает целое число, которое меньше, больше нуля или равно ему, если выяснится, что s1 меньше, равна или больше s2 соответственно.

Функция strncasecmp() работает аналогичным образом, но сравниваются только первые n байт строки s1.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Функции strcasecmp() и strncasecmp() возвращают целое число, которое меньше, больше нуля или равно ему, если строка s1 (или её первые n байтов) соответственно меньше, больше или равна s2.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
ИнтерфейсАтрибутЗначение
strcasecmp(), strncasecmp() безвредность в нитяхбезвредно (MT-Safe locale)

СООТВЕТСТВИЕ СТАНДАРТАМ

4.4BSD, POSIX.1-2001, POSIX.1-2008.

ЗАМЕЧАНИЯ

Впервые, функции strcasecmp() и strncasecmp() появились в 4.4BSD, где они объявлялись в <string.h>. Из-за этого, по причине исторической совместимости, в заголовочном файле glibc <string.h> также объявлены эти функции, если определён макрос тестирования свойств _DEFAULT_SOURCE (или, в glibc 2.19 и старее, _BSD_SOURCE).

В стандарте POSIX.1-2008 об этих функциях сказано:

Если используется категория локали LC_CTYPE из локали POSIX, то эти функции должны работать как если бы строки были преобразованы к нижнему регистру и проводилось побайтовое сравнение. В противном случае результаты не определёны.