Посчитать, сколько раз заданное слово встречается в тексте - 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;
- }
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с потоками ввода-вывода и строками
- Объявление переменных:
—
word
- переменная для хранения введенного пользователем слова —str
- переменная для хранения текста, в котором необходимо найти количество вхождений заданного слова - Вывод на экран сообщения с просьбой ввести искомое слово
- Считывание искомого слова с помощью функции
getline
- Проверка наличия искомого слова в строке с помощью метода
find
- Если искомый слова нет в строке, то выводится сообщение
0
- Иначе, объявляется переменная
k
для хранения количества найденных вхождений слова - В цикле
while
с помощью методаfind
ищем следующее вхождение искомого слова в строке - Если слово найдено, то увеличивается значение переменной
k
и с помощью методаerase
удаляется найденное вхождение слова из строки - Цикл продолжается до тех пор, пока не будет найдено следующее вхождение слова
- После окончания цикла выводится на экран значение переменной
k
, которая содержит количество найденных вхождений слова - Возвращение значения 0, что означает успешный конец работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д