Подсчитать сколько раз в тексте встречается каждое слово и удалить то слово, которое встречается чаще всего - C (СИ)
Формулировка задачи:
Само задание : Вводим текст и для каждого из слов указать, сколько раз оно встречается в тексте. Слово, чаще всего встречающееся в тексте, удалить. Код Си.
Помогите пожалуйста!!
Решение задачи: «Подсчитать сколько раз в тексте встречается каждое слово и удалить то слово, которое встречается чаще всего»
textual
Листинг программы
- #include <stdio.h>
- #include <string.h>
- #include <stdlib.h>
- #define N 1000
- void slova(char str[]){
- //посчитаем число слов
- size_t i=0;
- size_t colSlov=1;
- for(i=0; i<strlen(str); ++i)
- if(str[i]==' ')
- colSlov++;
- //выделим первое слово
- char* pch[colSlov];
- pch[0] = strtok(str," ,.?!:;");
- printf ("%s\n", pch[0]);
- //выделим остальные слова и выведем
- i=1;
- while (i < colSlov)
- {
- pch[i] = strtok (NULL, " ,.?!:;");
- if( pch[i]!=NULL)
- printf ("%s\n", pch[i++]);
- }
- printf("\n");
- }
- int main(void) {
- char A[N];
- puts("Vvedite stroku");
- fgets(A, N , stdin);
- slova(A);
- system("PAUSE");
- return 0;
- }
Объяснение кода листинга программы
В данном коде реализована функция slova, которая принимает на вход строку и подсчитывает количество вхождений каждого слова в эту строку.
- Сначала в функции slova определяется переменная i, которая итерирует по строке str, и переменная colSlov, которая инициализируется единицей и используется для подсчета числа слов в строке. Значение переменной colSlov увеличивается на единицу каждый раз, когда в строке встречается пробел.
- Далее функция выделяет первое слово в строке, используя функцию strtok, которая принимает на вход строку и разделитель (в данном случае пробел, запятую, точку, восклицательный знак, вопросительный знак, двоеточие и точку с запятой). Выделенное слово выводится на экран.
- Затем в цикле while, который продолжается до тех пор, пока i меньше colSlov, функция strtok вызывается снова, на этот раз без аргументов, чтобы выделить следующее слово. Если это слово не является последним (то есть i меньше colSlov), оно также выводится на экран.
- В конце функции выводится символ новой строки, чтобы перейти на новую строку.
- В функции main вводится строка с помощью функции fgets, и эта строка передается в функцию slova. После этого программа ожидает нажатия любой клавиши с помощью функции system, прежде чем завершиться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д