Найти количество сочетаний символов в файле - C (СИ)
Формулировка задачи:
Дан текстовый файл, в котором записано много строк. Нужно считать их и узнать сколько раз в них встречается сочетание символов := . Вроде бы можно через fgets и цикл, только реализовать никак не могу.
Решение задачи: «Найти количество сочетаний символов в файле»
textual
Листинг программы
static int HowOccurrences(string str, string pod_str)
{
// функция, подсчитывающая вхождения (есть в ссылке вверху).
// возможно надо будет переписать на C c C++
}
char *line = new char;
FILE *fp = fopen("myfile.txt", "r");
if (NULL == fp)
{
// сообщение о невозможности открыть файл, выход
}
int sum = 0;
while (!feof(fp))
{
fgets(line,255, fp);
sum+=HowOccurrences(line,":=");
}
fclose(fp);
// вывести sum
Объяснение кода листинга программы
В данном коде реализована функция HowOccurrences, которая подсчитывает количество вхождений подстроки в строку. Эта функция вызывается в цикле, который считывает строки из файла до тех пор, пока не достигнет конца файла.
В каждой строке цикла подсчитывается количество вхождений подстроки :=. Это делается путем вызова функции HowOccurrences.
В конце цикла выводится общее количество вхождений подстроки := в файле.
Код не обрабатывает ошибки, связанные с открытием файла или чтением из него.