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

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

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

Само задание : Вводим текст и для каждого из слов указать, сколько раз оно встречается в тексте. Слово, чаще всего встречающееся в тексте, удалить. Код Си. Помогите пожалуйста!!

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

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. #define N 1000
  6.  
  7. void slova(char str[]){
  8.     //посчитаем число слов
  9.     size_t i=0;
  10.     size_t colSlov=1;
  11.     for(i=0; i<strlen(str); ++i)
  12.         if(str[i]==' ')
  13.             colSlov++;
  14.            
  15.     //выделим первое слово        
  16.     char* pch[colSlov];
  17.     pch[0] = strtok(str," ,.?!:;");
  18.     printf ("%s\n", pch[0]);
  19.    
  20.     //выделим остальные слова и выведем
  21.     i=1;
  22.     while (i < colSlov)
  23.     {
  24.         pch[i] = strtok (NULL, " ,.?!:;");
  25.         if( pch[i]!=NULL)
  26.             printf ("%s\n", pch[i++]);
  27.     }
  28.     printf("\n");
  29. }
  30.  
  31. int main(void) {
  32.     char A[N];
  33.     puts("Vvedite stroku");
  34.     fgets(A, N , stdin);
  35.     slova(A);
  36.     system("PAUSE");
  37.     return 0;
  38. }

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

В данном коде реализована функция slova, которая принимает на вход строку и подсчитывает количество вхождений каждого слова в эту строку.

  1. Сначала в функции slova определяется переменная i, которая итерирует по строке str, и переменная colSlov, которая инициализируется единицей и используется для подсчета числа слов в строке. Значение переменной colSlov увеличивается на единицу каждый раз, когда в строке встречается пробел.
  2. Далее функция выделяет первое слово в строке, используя функцию strtok, которая принимает на вход строку и разделитель (в данном случае пробел, запятую, точку, восклицательный знак, вопросительный знак, двоеточие и точку с запятой). Выделенное слово выводится на экран.
  3. Затем в цикле while, который продолжается до тех пор, пока i меньше colSlov, функция strtok вызывается снова, на этот раз без аргументов, чтобы выделить следующее слово. Если это слово не является последним (то есть i меньше colSlov), оно также выводится на экран.
  4. В конце функции выводится символ новой строки, чтобы перейти на новую строку.
  5. В функции main вводится строка с помощью функции fgets, и эта строка передается в функцию slova. После этого программа ожидает нажатия любой клавиши с помощью функции system, прежде чем завершиться.

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


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

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

15   голосов , оценка 3.8 из 5

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

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

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