strncasecmp()

Сравнить части двух строк с игнорированием регистра

Прототип:

#include <strings.h>
int strncasecmp( const char *str1,
const char *str2,
size_t n );

Аргументы:

str1
str2
Строки, которые требуется сравнить.
n
Максимальное количество символов, которые требуется сравнить.

Библиотека:

libc

Описание:

Функция strncasecmp() сравнивает до n символов в двух строках, заданных в str1 и str2, игнорируя регистр символов.

Возвращаемое значение:

<0
s1 меньше, чем s2.
0
s1 равна s2.
>0
s1 больше, чем s2.

Примеры:

#include <stdio.h>
#include <strings.h>
#include <stdlib.h>
void compare( const char *s1, const char *s2 )
{
int retval;
retval = strncasecmp( s1, s2, 3 );
if ( retval > 0 )
{
printf( "%s > %s\n", s1, s2 );
} else
if ( retval < 0 )
{
printf( "%s < %s\n", s1, s2 );
} else {
printf( "%s == %s\n", s1, s2 );
}
}
int main( void )
{
char *str1 = "abcdefg";
char *str2 = "HIJ";
char *str3 = "Abc";
char *str4 = "aBCDEfg";
compare( str1, str2 );
compare( str1, str3 );
compare( str1, str4 );
compare( str1, str1 );
compare( str2, str2 );
compare( str2, str3 );
compare( str2, str4 );
compare( str2, str1 );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out abcdefg < HIJ abcdefg == Abc abcdefg == aBCDEfg abcdefg == abcdefg HIJ == HIJ HIJ > Abc HIJ > aBCDEfg HIJ > abcdefg

Классификация:

POSIX 1003.1 XSI

Точка остановки потока
Нет
Обработчик прерываний
Да
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

strcasecmp(), strcmp(), strcmpi(), strcoll(), stricmp(), strncmp(), strnicmp(), wcscmp(), wcscoll(), wcsncmp()




Предыдущий раздел: Описание API системной библиотеки