Как подсчитать количество вхождений подстроки в строку?

Кто-нибудь может рассказать мне о том, как найти количество вхождений подстроки в заданной строке без использования строковой функции. например, это строка «когда мужчины получают курицу», а ожидаемый результат — подстрока «он» встречается 4 раза в строке данная строка.


person krishna    schedule 25.02.2011    source источник
comment
preg_match_all было бы быстрым предположением   -  person KJYe.Name 葉家仁    schedule 25.02.2011
comment
Что вы подразумеваете под «без использования строковой функции во время выполнения»?   -  person Gumbo    schedule 25.02.2011
comment
ну после C вы переходите на php :D   -  person Adnan    schedule 25.02.2011


Ответы (3)


substr_count('when the men get the hen', 'he');

http://php.net/manual/en/function.substr-count.php

person delphist    schedule 25.02.2011
comment
это означает, что без использования какой-либо строковой функции для получения результата - person krishna; 25.02.2011

Без использования каких-либо строковых функций?

Есть ли реальный смысл ограничивать себя набором функций, исключающим те, которые специально разработаны для того, что вы пытаетесь сделать?

$string = 'when the men get the hen';
$substring = 'he';

$cArr = explode($substring,$string);
$substring_count = count($cArr) - 1;
person Mark Baker    schedule 25.02.2011

Шагать по строке по одному символу за раз

Проверить, является ли текущий символ буквой «h»

Если это так, проверьте, является ли следующий символ буквой «e»

Если это «е», увеличьте свой счетчик на 1

Вернуться к шагу 1

person Gareth    schedule 25.02.2011