Программа подсчёта числа слов в текстовом файле - C (СИ)
Формулировка задачи:
Программа подсчёта числа слов в текстовом файле. Результат подсчёта записываются во второй текстовый файл( имена файлов передаются в качестве аргументов командной строки при запуске программы).Пример вывода программы для текстового файла.
QWER REEt
2 слова 9 букв
Решение задачи: «Программа подсчёта числа слов в текстовом файле»
textual
Листинг программы
#include <stdio.h> #include <string.h> #include <stdlib.h> int main(int argc, char *argv[]) { int words_total=0; // общее кол-во слов int lines_total=0; // аналогично для строк int symbols_total=0; // и символов int i; for (i=1;i<argc;++i) // перебираем параметры переданные в программу (имена файлов) { FILE* file=fopen(argv[i], "r"); int words=0; int lines=0; char prev_c=0; while (!feof(file)) { char c=fgetc(file); // читаем символ из файла if (c=='\n') // если считали символ переноса строки, то { lines++; words++; } if (c==' ' && prev_c!=' ') // если считали пробел, и предыдущий символ не пробел, значит считали слово words++; // увеличивем кол-во слов prev_c=c; // заносим текущий символ в предыдущий } int symbols = ftell(file);//получаем размер файла fclose(file); char fileName[256]; // тут будем хранить имя файла (без пути к нему) int j=strlen(argv[i]); while (argv[i][j]!='/' && j>=0) j--; strcpy(fileName, argv[i]+j+1); printf("%d %d %d %s\n", lines, words, symbols, fileName); words_total+=words; symbols_total+=symbols; lines_total+=lines; } if (argc!=2) // если в параметрах не один файл, то printf("Total: %d %d %d\n",lines_total, words_total, symbols_total); return 0; }
Объяснение кода листинга программы
- Объединение всех вводимых файлов в один выводимый поток
- Инициализация переменных: words_total, lines_total, symbols_total, i, file, words, lines, prev_c, fileName, j, argv
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д