Заменить все звездочки на пробел - 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);
}