В каждой строке вставить после знаков препинания пробелы, если их там нет - 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. Открывается файл 1.txt для чтения.
  2. Затем производится чтение содержимого файла в память.
  3. Далее в цикле обрабатывается каждая строка текста.
  4. В каждой строке проверяется наличие знаков препинания.
  5. Если знаки препинания есть, то после них добавляются пробелы.
  6. После обработки каждой строки, она выводится на экран.
  7. В конце работы программы, закрывается файл 1.txt.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.5 из 5
Похожие ответы