Программа подсчёта числа слов в текстовом файле - 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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д