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

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

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

пролистал огромное количество темок, на самое ближайшее, что я смог найти это вот этот код программы, который ищет количество вхождений каждого слова в тексте. помогите пожалуйста "упростить" данную программу для того, чтобы она искала лишь одно введенное с клавиатуры слово. минут 40 пытался разобрать в коде программы, но безуспешно, не перевариваю я пока на 1 курсе указатели)
#include <stdio.h>
#include <string.h>
 
int main() {
 
   char text[70];
   char *a[35],*pov[35];
   char* t;
   int i=0,j,k,sk,pov_count[35],h=0,d,f;
   
   printf("\nVvedite text:\n");
   gets(text);
   printf("\n");
   
   t=strtok(text," ");
 
   while (t != NULL) {
      a[i]=t;
      t = strtok (NULL, " ");
      i++;
   }
   
   for(j=0; j<i; j++) {
      sk=0;
      f=0;
      for(k=0; k<i; k++) {
         if (strcmp(a[j], a[k]) == 0) {
            sk++;
         }
      }
      for(d=0; d<h; d++) {
         if (strcmp(a[j], pov[d]) == 0) {
            f++;
         }
      }
      if(f == 0) {
         pov[h]=a[j];
         pov_count[h]=sk;
         h++;
      }
   }
   
   for(j=0; j<h; j++) {
      printf("\nSlovo povtotyechiesy: %s",pov[j]);
      printf("\nPovtoreniy          : %i",pov_count[j]);
      printf("\n");
   }
   
   printf("\n");
   
   return 0;
}

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

textual
Листинг программы
#include <iostream>
#include <cctype>
#include <string>
 
int main()
{
    std::string word;
    std::string str = "my name is john klop qwerty num name my john kate jane ups qwerty my name";
    std::cout <<"Slovo: ";
    getline (std::cin, word);
    if (str.find (word)==-1)
        std::cout <<"0" <<'\n';
    else
    {
        int k = 0;
        while (str.find(word)!=-1)
        {
            ++k;
            str.erase (str.find(word),word.size());
        }
        std::cout <<k <<'\n';
    }
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с потоками ввода-вывода и строками
  2. Объявление переменных: — word - переменная для хранения введенного пользователем слова — str - переменная для хранения текста, в котором необходимо найти количество вхождений заданного слова
  3. Вывод на экран сообщения с просьбой ввести искомое слово
  4. Считывание искомого слова с помощью функции getline
  5. Проверка наличия искомого слова в строке с помощью метода find
  6. Если искомый слова нет в строке, то выводится сообщение 0
  7. Иначе, объявляется переменная k для хранения количества найденных вхождений слова
  8. В цикле while с помощью метода find ищем следующее вхождение искомого слова в строке
  9. Если слово найдено, то увеличивается значение переменной k и с помощью метода erase удаляется найденное вхождение слова из строки
  10. Цикл продолжается до тех пор, пока не будет найдено следующее вхождение слова
  11. После окончания цикла выводится на экран значение переменной k, которая содержит количество найденных вхождений слова
  12. Возвращение значения 0, что означает успешный конец работы программы

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


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

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

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