Найти в тексте все вхождения данного образца - C (СИ)
Формулировка задачи:
Здравствуйте! Очень нужна помощь. Задание: найти в тексте все вхождения данного образца. То есть это просто поиск подстроки в строке? Необходимо написать параллельную программу. Помогите пожалуйста, очень нужно
Решение задачи: «Найти в тексте все вхождения данного образца»
textual
Листинг программы
#include <stdio.h> #include <string.h> size_t subs_count(const char * str, const char * sub) { return ( str = strstr(str, sub) ) ? 1 + subs_count(str + 1, sub) : 0; } typedef char str_t[256]; #define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 ) int main(void) { str_t str, sub; while ( printf("String: ") && get_string(str) && printf("Search for: ") && get_string(sub) ) printf("%lu meetings.\n", subs_count(str, sub)); return 0; }
Объяснение кода листинга программы
- В этом коде определена функция
subs_count
, которая подсчитывает количество вхождений подстроки в строке. Функция использует функциюstrstr
для поиска первого вхождения подстроки в строке. Если подстрока найдена, функция рекурсивно вызывает саму себя для оставшейся части строки, увеличивая счетчик. Если подстрока не найдена, функция возвращает 0. - Определен тип
str_t
как массив символов фиксированного размера 256. - В функции
main
создаются две переменные типаstr_t
-str
иsub
. - В цикле
while
запрашиваются две строки - исходная строка и строка для поиска. - Количество вхождений подстроки выводится на экран.
- Код выполняется до тех пор, пока пользователь вводит две строки.
- Возвращаемое значение функции
main
- 0, что означает успешное завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д