Определение длины строки и поиск символов и подстрок в строке

Получить длину строки можно с помощью функции

int strlen(string str).

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

int strpos(string haystack, string needle [, int offset])

int strrpos(string haystack, char needle)

int strspn(string str1, string str2)

int strcspn(string str1, string str2)

int substr_count(string haystack, string needle)

Функция strpos() определяет позицию начала первого появления, а функция strrpos() – позицию начала последнего появления подстроки needle в строке haystack. Если задан третий параметр, просмотр строки начинается с позиции offset, иначе – с начала строки. Если подстрока не найдена в строке, обе функции возвращают false.

Функция strspn() возвращает длину начального сегмента str1, полностью состоящего из символов строки str2, а функция strcspn(), наоборот, возвращает длину начального сегмента str1, не содержащего ни одного из символов строки str2.

Функция substr_count() возвращает количество повторений подстроки needle в строке haystack.

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

В следующем фрагменте программы определяются все индексы начала подстроки в строке $str, а также общее количество вхождений подстроки в строку.

$str = 'Ivanov Ivan Ivanovich'; // Проверяемая строка

// Определение позиции первого

// вхождения подстроки

$currentPos = strpos($str, 'Ivan');

// Определение позиций остальных

// вхождений подстроки в цикле

while($currentPos!== false)

{

// Вывод позиции текущего

// вхождения подстроки

print "\n pos=".$currentPos;

// Определение позиции следующего

// вхождения подстроки

$currentPos = strpos($str, 'Ivan', $currentPos + 1);

}

// Вывод количества вхождений

// подстроки в строке

print "\nNumber of entering: ".substr_count($str, 'Ivan');

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

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

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

$str = "Ответ:42"; // Исходная строка

// Определение длины начального сегмента,

// не содержащего ни одной цифры

$var1 = strcspn($str, "0123456789",2);

// Определение длины начального сегмента,

// полностью состоящего из цифр

$var2 = strspn($str, "0123456789", 6);

// Вывод $var1 и $var2

print "\$var1=$var1 \$var2=$var2";

переменная $var1 – значение 6 (строка "Ответ:"), а переменная $var2 получит значение 2 (строка "42"):


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



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