Найти в тексте все вхождения данного образца - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Очень нужна помощь. Задание: найти в тексте все вхождения данного образца. То есть это просто поиск подстроки в строке? Необходимо написать параллельную программу. Помогите пожалуйста, очень нужно

Решение задачи: «Найти в тексте все вхождения данного образца»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. size_t subs_count(const char * str, const char * sub) {
  5.     return ( str = strstr(str, sub) ) ? 1 + subs_count(str + 1, sub) : 0;
  6. }
  7.  
  8. typedef char str_t[256];
  9. #define get_string(s) ( scanf("%255[^\n]%*c", (s)) == 1 )
  10.  
  11. int main(void) {
  12.     str_t str, sub;
  13.    
  14.     while ( printf("String: ") && get_string(str) && printf("Search for: ") && get_string(sub) )
  15.         printf("%lu meetings.\n", subs_count(str, sub));
  16.        
  17.     return 0;
  18. }

Объяснение кода листинга программы

  1. В этом коде определена функция subs_count, которая подсчитывает количество вхождений подстроки в строке. Функция использует функцию strstr для поиска первого вхождения подстроки в строке. Если подстрока найдена, функция рекурсивно вызывает саму себя для оставшейся части строки, увеличивая счетчик. Если подстрока не найдена, функция возвращает 0.
  2. Определен тип str_t как массив символов фиксированного размера 256.
  3. В функции main создаются две переменные типа str_t - str и sub.
  4. В цикле while запрашиваются две строки - исходная строка и строка для поиска.
  5. Количество вхождений подстроки выводится на экран.
  6. Код выполняется до тех пор, пока пользователь вводит две строки.
  7. Возвращаемое значение функции main - 0, что означает успешное завершение программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы