Подсчитать сколько раз в тексте встречается каждое слово и удалить то слово, которое встречается чаще всего - 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, прежде чем завершиться.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д