Заменить все звездочки на пробел - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Необходимо, используя динамическую память в текстовом файле неизвестного размера заменить все * на ' ' (пробел).
// Uta.cpp//
 
#include <stdafx.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
 
int _tmain()
{
    struct node
    {
        char text;
        struct node *next;
    };
    typedef node *PNode;
    char help;
    FILE*oldf; 
    FILE*newf;
    PNode Head, f, c;
    f=(node*)malloc(sizeof(node));
    Head=f;
    oldf=fopen("Stars.txt","r");
    newf=fopen("Space.txt","a");
 
    while (feof(oldf)==0)
    {
        fscanf(oldf, "%c", &help);
        
        if (help=='*')
            help=' ';
        f->text=help;
        if (f->text=='\n')
        {
            fprintf(newf, "%s", f->text);
            free(f); free(Head);
            Head=(node*)malloc(sizeof(node));
        }
        c=(node*)malloc(sizeof(node));
        f->next=c;
        f=c;
    }
    fclose(oldf);
    fclose(newf);
    getch();
}
Написал что-то, но не работает, прошу помочь.

Решение задачи: «Заменить все звездочки на пробел»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
    FILE *in = fopen("1", "r");
    FILE *out = fopen("2", "w");
    char *buffer = (char*)malloc(4096), *c;
    while(!feof(in))
    {
        if((c = fgets(buffer, 4096, in)) == 0) break;
        do if(*c=='*') *c=' '; while(*c++);
        fputs(buffer, out);
    }
    free(buffer);
    fclose(in);
    fclose(out);
}

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


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

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

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