Мне нужно прочитать весь файл между строками START и STOP и записать эту строку в новый файл.
Например file1.txt = "Hello START world! STOP" и записать в новый file2.txt = "Мир!"(без пробелов после START и до STOP)
У меня уже есть этот код, я могу использовать только 4 функции: fopen (), fclose (), fgetc (), fputc ()
Мой кодне будет работать должным образом.Он начинается с START, но в конце записывает пробелы STO.
Не могли бы вы помочь мне с этим алгоритмом?Спасибо
#include <stdio.h>
int main( int argc, char *argv[] ) {
FILE *input;
FILE *output;
char c;
char start[] = "START";
char stop[] = "STOP";
int started = 0;
int stopped = 0;
input = fopen(argv[1], "r");
output = fopen(argv[2], "w");
c = fgetc(input);
int i = 0;
while(c != EOF) {
if(started == 0) {
//find start
if(c == ' ' || c == '\n' || c == ',' || c == '.')
i = 0;
else
{
if(c == start[i])
i++;
else
i = 0;
}
if(i == 5) {
started = 1;
i = 0;
c = fgetc(input); //move space
}
} else {
//write letters until stop
if(stopped == 0) {
//find stop
if(c == ' ' || c == '\n' || c == ',' || c == '.')
i = 0;
else
{
if(c == stop[i])
i++;
else
i = 0;
}
if(i == 4) {
stopped = 1;
i = 0;
break;
}
}
if(c != 'S' && c != 'T' && c != 'O' && c != 'P')
fputc(c, output);
}
c = fgetc(input);
}
fclose(input);
fclose(output);
return 0;
}