Найти количество двух определённых слов в тексте - C (СИ)
Формулировка задачи:
Помогите, пожалуйста, переделать код. Завтра уже сдавать надо. Мне надо найти кол-во 2 определённых слов в тексте. ( например up и cat)
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void main()
{
int len, count;
char s[80], word[20],
*p,
*start;
puts ( "Vvedite predlogenie:/n" );
gets ( s );
puts ( "Vvedire slovo dlya poiska" );
gets ( word );
len = strlen ( word );
count = 0;
start = s;
while ( 1 ) {
p = strstr (start, word);
if ( p == NULL ) break;
count ++;
start = p + len;
}
printf ( "V etom preglogenii %d slov %s", count, word );
}Решение задачи: «Найти количество двух определённых слов в тексте»
textual
Листинг программы
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#define STRL 80
#define WRDL 30
void main()
{
int len, count;
char str[STRL], word[WRDL], *wp, *sp, *ptr;
puts ( "Vvedite predlogenie:/n" );
gets ( str);
puts ( "Vvedite dva slova dlya poiska" );
gets ( word);
wp = strtok(word, " ,.!?");
sp = str;
count = 0;
while ((ptr = strstr(sp, wp)) != NULL) {
sp = ++ptr;
count++;
}
if (count)
printf("V etom predlogenii %d slov %s\n", count, wp);
wp = strtok(NULL, " ,.!?");
sp = str;
count = 0;
while ((ptr = strstr(sp, wp)) != NULL) {
sp = ++ptr;
count++;
}
if (count)
printf("V etom predlogenii %d slov %s\n", count, wp);
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем строковые константы STRL и WRDL
- Объявляем переменные len, count, str, word, wp, sp, ptr
- Выводим приглашение для ввода строки и двух слов
- Считываем строку и два слова
- Используем функцию strtok для разделения слов из введенной строки
- Используем функцию strstr для поиска первого вхождения первого слова
- Увеличиваем указатель на найденное слово
- Увеличиваем счетчик при каждом найденном слове
- Выводим количество найденных слов
- Повторяем шаги 6-10 для второго слова
- Если количество найденных слов больше 0, выводим результат
- Вводим строку и два слова для проверки
- Запускаем программу и получаем результат