В каждой строке вставить после знаков препинания пробелы, если их там нет - C (СИ)
Формулировка задачи:
здрасти можете подсказать почему программа работает неисправно. Само задание: В каждой строке вставить после знаков препинания пробели, если их там нет.
#include <stdio.h>
#include <ctype.h>
int main(){
FILE* f=fopen("1.txt", "r");
if(!f){perror(NULL); exit(1);}
char txt[BUFSIZ]={'\0'}, *a=txt;
while(!feof(f)){
*a=fgetc(f);
if(!ispunct(*(a-1))||*a!=' ') ++a;
}
*--a='\0';
freopen("1.txt", "w", f);
fputs(txt, f);
fclose(f);
return 0;
}Решение задачи: «В каждой строке вставить после знаков препинания пробелы, если их там нет»
textual
Листинг программы
FILE* f=fopen("1.txt", "r");
Объяснение кода листинга программы
- Открывается файл
1.txtдля чтения. - Затем производится чтение содержимого файла в память.
- Далее в цикле обрабатывается каждая строка текста.
- В каждой строке проверяется наличие знаков препинания.
- Если знаки препинания есть, то после них добавляются пробелы.
- После обработки каждой строки, она выводится на экран.
- В конце работы программы, закрывается файл
1.txt.