Найти, сколько раз в каждой строке текста встречается заданное слово - C (СИ)

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

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

Всем доброго времени суток! Мне лишь необходимы ваши подсказки, либо алгоритм решения следующего задания: Дан текст. Найти сколько раз в

каждой

строке встречается заданное слово; сколько слов в строке содержит гласных букв больше, чем согласных. Заранее спасибо! Всем откликнувшимся! Это всего лишь поиск заданного слова в строке, в целом:
#include <string.h>
#include <stdio.h> 
#define SIZE 100                     
 
int main()
{
    char  s[SIZE];                  
    char  substr[SIZE];        
    int   n = 0;                 
    char* temp = s;                  
    
    puts("Vvedite stroku: \n");     
    gets(s);                        
    puts("\nVvedite slovo: \n"); 
    gets(substr);             

    while((temp = strstr(temp, substr)) != NULL) 
    {
                                    
        n++;                        
        temp++;                      
                                     
    }
    printf("\nEto slovo vstrechaetsya %d raz(a)!", n);
    getchar();
    return 0;
}
А хотелось бы так, чтобы слово искалось в каждой строке. Есть идеи? Результат 1-ой части проги должен быть таким: в 1-ой строке заданное слово встречается н-раз, во 2-ой н-раз, и так далее. И хотелось бы подсказок по поводу 2-ой части задания.
Up...

Решение задачи: «Найти, сколько раз в каждой строке текста встречается заданное слово»

textual
Листинг программы
#include <string.h>
#include <stdio.h> 
#define SIZE 100                     
 
int main()
{
    char  s[SIZE];                  
    char  substr[SIZE];        
    int   n = 0;                 
    char* temp;                  
    
    puts("Vvedite stroku: \n");     
    gets(s);                        
    puts("\nVvedite slovo: \n"); 
    gets(substr);             
   
    temp = s;
    while((temp = strstr(temp, substr)) != NULL) 
    {
                                    
        n++;                        
        temp++;                      
                                     
    }
    printf("\nEto slovo vstrechaetsya %d raz(a)!", n);
    getchar();
    return 0;
}

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

  1. Подключение необходимых библиотек для работы со строками и вводом/выводом
  2. Определение константы SIZE, которая задает максимальный размер строки в символах
  3. Объявление переменных: s[SIZE] - для хранения введенной строки, substr[SIZE] - для хранения заданного слова, n - для подсчета количества вхождений слова в строке, temp - для временного хранения указателя на текущую позицию в строке
  4. Ввод строки и заданного слова с помощью функций puts и gets
  5. Поиск первого вхождения заданного слова в строке с использованием функции strstr и присвоение указателя на найденное вхождение переменной temp
  6. Вход в цикл while, который будет выполняться до тех пор, пока не будет найдено следующее вхождение заданного слова в строке
  7. Увеличение счетчика n на единицу и смещение указателя temp на следующую позицию в строке
  8. Выход из цикла while и вывод результата с помощью функции printf
  9. Получение символа окончания ввода с помощью функции getchar
  10. Завершение программы возвратом значения 0

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


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

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

15   голосов , оценка 3.667 из 5
Похожие ответы