Определить количество заданных слов в предложении - C (СИ)
Формулировка задачи:
Написать программу , которая считывает текст из файла и выводит его на экран , добавляя после каждого предложения информацию о том , сколько раз встретилось в нем введенное с клавиатуры слово. ВВод-Вывод осуществлять с помощью средств языка С.
Решение задачи: «Определить количество заданных слов в предложении»
textual
Листинг программы
#include <stdio.h>
#include <string.h>
int repeat(char *s,char *slovo)
{
char *pos;
int povtor,i,j,s_len;
pos=NULL;
povtor=0;
s_len=(int)strlen(s);
pos=strstr(s,slovo);
if(pos!=NULL)
{
j=0;
for(i=pos;i<pos+s_len-1;i++)
{
pos=strstr(pos+j,slovo);
if(pos!=NULL)
{
povtor++;
j++;
}
}
}
return povtor;
}
main()
{
FILE *read;
char s[100],slovo[5];
printf("Enter word: ");
scanf("%s",slovo);
read=fopen("f2.txt","rt");
while(!feof(read))
{
fgets(s,100,read);
printf("%s",s);
printf("\nrepeat = %d\n",repeat(s,slovo));
}
close(read);
}
Объяснение кода листинга программы
В этом коде определен функции repeat и main. Функция repeat принимает два аргумента типа char* - строки s и slovo. Эта функция ищет первое вхождение подстроки slovo в строке s и возвращает количество таких вхождений.
Функция main открывает файл f2.txt для чтения, считывает его построчно и выводит каждую строку. После каждой строки вызывается функция repeat с текущей строкой и словом для поиска. Результат поиска выводится на экран.
Вот список действий, которые происходят в коде:
- Включаются необходимые заголовочные файлы.
- Определяется функция
repeat, которая ищет вхождение подстроки в строке. - Определяется функция
main, которая открывает файл для чтения и считывает его построчно. - Пользователю предлагается ввести слово для поиска.
- Файл
f2.txtоткрывается для чтения. - Пока файл не закончился, считывается следующая строка.
- Считанная строка выводится на экран.
- Вызывается функция
repeatс текущей строкой и словом для поиска. - Результат поиска выводится на экран.
- Файл закрывается.