Подсчитать сколько раз появляется каждое ключевое слово языка С в символьном файле с программой на С - C (СИ)
Формулировка задачи:
Всем привет! Помогите Подсчитать сколько раз появляется каждое ключевое слово языка С в
символьном файле с программой на С.(под ключевым словом подразумевается for while do if).использовать функции fopen(), fclose(), fgets()
Решение задачи: «Подсчитать сколько раз появляется каждое ключевое слово языка С в символьном файле с программой на С»
textual
Листинг программы
#include <stdio.h> #include <string.h> int Search(char line[], char word[]) { char *p, *start; int count = 0; start = line; while(1){ p = strstr(start, word); if(p == NULL)break; count++; start = p + strlen(word); } return count; } int main() { int nf = 0, nw = 0, nd = 0, ni = 0; char s[128]; FILE *fp; fp = fopen("f1.txt", "r"); while(fgets(s, 128, fp)){ nf += Search(s, "for"); nw += Search(s, "while"); nd += Search(s, "do"); ni += Search(s, "if"); } fclose(fp); puts("File f1 has words:"); printf("'for' %d times,\n'while' %d times,\n'do' %d times,\n and 'if' %d times.\n", nf, nw, nd, ni); return 0; }
Объяснение кода листинга программы
- Включаются необходимые заголовочные файлы для работы с файлами и строками.
- Определяется функция
Search
, которая принимает два аргумента: строкуline
и словоword
. Функция ищет все вхождения слова в строке и возвращает количество таких вхождений. - В функции
main
инициализируются переменныеnf
,nw
,nd
иni
со значением 0. Они используются для подсчета количества вхождений ключевых словfor
,while
,do
иif
соответственно. - Открывается файл
f1.txt
для чтения с помощью функцииfopen
. - В цикле
while
происходит чтение строки из файла с помощью функцииfgets
. - Каждая прочитанная строка передается в функцию
Search
для подсчета вхождений каждого ключевого слова. - После окончания чтения файла, функция
fclose
закрывает файл. - Выводится количество вхождений каждого ключевого слова с помощью функции
printf
. - Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д