Заменить все слова в исходном файле на количество букв (целое число) в слове - C (СИ)
Формулировка задачи:
Заменить все слова в исходном файле на количество букв (целое число) в сло-
ве. Результат записать в отдельный файл. Записывать числа следует с помощью
функции форматированного вывода fprintf.
Решение задачи: «Заменить все слова в исходном файле на количество букв (целое число) в слове»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(void)
{
int count_c = 0;
char ch;
FILE *fi, *fo;
fo = fopen("text.out", "w");
fi = fopen("text.in", "r");
if(fi == NULL && fo == NULL)
puts("ERROR: не могу открыть файл"), exit(1);
while((ch = fgetc(fi)) != EOF)
if(!isspace(ch) && !ispunct(ch))
{
count_c++;
}
else if(isspace(ch))
{
if(count_c)
{
fprintf(fo, "%d%c", count_c, ch);
count_c = 0;
}
}
fclose(fi);
fclose(fo);
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и строками
- Объявление переменных: count_c (счетчик количества букв), ch (хранение очередного символа из файла), fi и fo (указатели на файлы для чтения и записи)
- Открытие файлов для чтения и записи
- Проверка на успешное открытие файлов. Если файлы не открылись, выводится сообщение об ошибке и программа завершается
- Чтение символов из файла и подсчет количества непустых символов
- Запись количества букв и пробела в файл
text.out - Закрытие файлов
- Завершение программы с возвратом 0 (успешное выполнение)