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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
#include <string.h>
#define ARRAY_SIZE 500
#define WORD_SIZE 20
 
int main ( void )
{
    char sequenceArray[ARRAY_SIZE] = "";
    char wordArray[WORD_SIZE] = "";
    signed short counterA = 0, counterB = 0, counterC = 0; 
    signed char currentCharacter, word = 0;
 
    puts( "Enter search word: ");
    fflush( stdout );
    fgets( wordArray, WORD_SIZE, stdin );
    wordArray[strlen(wordArray) - 1] = 0;
 
    puts( "Enter sequence in which search the word" );
    fflush( stdout );
 
    while ((currentCharacter = getchar()) != EOF && counterA < ARRAY_SIZE - 1 ) {
 
        sequenceArray[counterA++] = currentCharacter;
    }
    sequenceArray[counterA] = '\0';
    
    for ( counterB = 0; counterB < counterA; ++counterB ) {
        
        if ( counterC ==  strlen( wordArray)) {
            ++word;
            counterC = 0;
        }
        
        if ( sequenceArray[counterB] == wordArray[counterC])
            ++counterC;
        
        else
            counterC = 0;
    }
    
    printf( "\n%s%-2hi%s\n", "The word was found ", word, "times" );
    
    return 0;
}

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

В этом коде:

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

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


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

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

13   голосов , оценка 4.077 из 5
Похожие ответы