Сравнение строк

Сравнение строк выполняется с помощью функций:

int strcmp(string str1, string str2)

int strncmp(string str1, string str2, int len)

int strcasecmp(string str1, string str2)

int strncasecmp(string str1, string str2, int len)

int strnatcmp(string str1, string str2)

int strnatcasecmp(string str1, string str2)

Функция strcmp() сравнивает строки по кодам символов. Результат меньше 0, если str1 < str2, равен 0, если str1 === str2 и больше 0, если str1 > str2. Функция strncmp() делает то же самое, но для сравнения используется первые len символов строк.

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

Функции strnatcmp() и strnatcasecmp() также аналогичны первой и второй функции, но сравнение строк выполняется в так называемом «естественном» порядке, например, когда символы "1" и "2" идут перед символами "10" (при «обычном» порядке последовательность символов следующая:, "10", "2").

Пример 4.6.115. Использование функций strcmp() и strcnatcmp():

В следующем фрагменте программы строки сравниваются между собой как обычные строки и с использованием «естественного» порядка сравнения:

$str1 = 'String10'; // Первая строка

$str2 = 'String2'; // Вторая строка

// Обычное сравнение строк

$comp1 = strcmp($str1, $str2);

// Вывод результата сравнения

print "\nUsual: ";

if($comp1 < 0)

print "\$str1 < \$str2";

elseif($comp1 > 0)

print "\$str1 > \$str2";

// "Естественное" сравнение строк

$comp2 = strnatcmp($str1, $str2);

// Вывод результата сравнения

print "\nNatural: ";

if($comp2 < 0)

print "\$str1 < \$str2";

elseif($comp2 > 0)

print "\$str1 > \$str2";

В результате выполнения фрагмента на экран будут выведены следующие строки:


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: