Определить, сколько раз в строке встречается заданное слово - C (СИ)

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

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

4,3) Определить, сколько раз в строке встречается заданное слово

Решение задачи: «Определить, сколько раз в строке встречается заданное слово»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #define ARRAY_SIZE 500
  4. #define WORD_SIZE 20
  5.  
  6. int main ( void )
  7. {
  8.     char sequenceArray[ARRAY_SIZE] = "";
  9.     char wordArray[WORD_SIZE] = "";
  10.     signed short counterA = 0, counterB = 0, counterC = 0;
  11.     signed char currentCharacter, word = 0;
  12.  
  13.     puts( "Enter search word: ");
  14.     fflush( stdout );
  15.     fgets( wordArray, WORD_SIZE, stdin );
  16.     wordArray[strlen(wordArray) - 1] = 0;
  17.  
  18.     puts( "Enter sequence in which search the word" );
  19.     fflush( stdout );
  20.  
  21.     while ((currentCharacter = getchar()) != EOF && counterA < ARRAY_SIZE - 1 ) {
  22.  
  23.         sequenceArray[counterA++] = currentCharacter;
  24.     }
  25.     sequenceArray[counterA] = '\0';
  26.    
  27.     for ( counterB = 0; counterB < counterA; ++counterB ) {
  28.        
  29.         if ( counterC ==  strlen( wordArray)) {
  30.             ++word;
  31.             counterC = 0;
  32.         }
  33.        
  34.         if ( sequenceArray[counterB] == wordArray[counterC])
  35.             ++counterC;
  36.        
  37.         else
  38.             counterC = 0;
  39.     }
  40.    
  41.     printf( "\n%s%-2hi%s\n", "The word was found ", word, "times" );
  42.    
  43.     return 0;
  44. }

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

В этом коде:

  1. Объявлены массив символов sequenceArray для хранения последовательности символов и переменная counterA для подсчета количества символов в последовательности.
  2. Пользователю предлагается ввести искомое слово.
  3. Пользователю предлагается ввести последовательность, в которой нужно искать слово.
  4. В цикле, пока не достигнут конец файла и количество символов в последовательности меньше ARRAY_SIZE, происходит добавление символов в sequenceArray.
  5. В конце цикла добавляется нулевой символ в sequenceArray.
  6. В цикле, начиная с 0 символа последовательности, проверяется каждый символ на равенство с текущим символом искомого слова. Если символы совпадают, увеличивается счетчик counterC. Если символы не совпадают, счетчик counterC сбрасывается до 0.
  7. В конце программы выводится количество вхождений искомого слова в последовательность.

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


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

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

13   голосов , оценка 4.077 из 5

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

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

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