Скопировать текстовый файл, зеркально поменяв порядок слов
Я не могу понять, есть код на зеркальное изменение строк, но как слова поменять не понимаю( Помогите, пожалуйста
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <stdlib.h>
#define MAXLEN 1000 // максимальная длина строки
#define NLINES 1000 // максимальное число строк
int main()
{
FILE* fp_open, * fp2_out;
char** lines; // указатель на динамический массив
int i;
int nlines = 0; // количество строк
fp_open = fopen("D:\\Study\\Studdy\\Programming\\Lab10_5\\vhod.txt", "rt");
fp2_out = fopen("D:\\Study\\Studdy\\Programming\\Lab10_5\\vihid.txt", "wt");
if (fp_open == NULL)
{
return 1;
}
lines = (char**)malloc(NLINES * sizeof(char*));
memset(lines, 0, NLINES * sizeof(char*)); // заполнение
while (!feof(fp_open))
{
char line[MAXLEN];
char* ptr = fgets(line, MAXLEN, fp_open);//чтение строки
int len; //длина текущей строки
if (ptr == NULL)
{
break; // файл исчерпан
}
// определить длину строки
len = (int)strlen(line);
if (nlines >= NLINES)
{
nlines++;
lines = (char**)realloc(lines, nlines * sizeof(char*));
lines[nlines - 1] = 0;
}
lines[nlines] = (char*)malloc(len + 1);
strcpy(lines[nlines], line); //копируем строку в статик массиве
nlines++;
}
for (i = nlines - 1 ; i >= 0; i--)
fputs(lines[i], fp2_out);
fclose(fp_open);
fclose(fp2_out);
// очищаем память
for (i = 0; i < nlines; i++)
{
if (lines[i] != NULL)
free(lines[i]);
}
// отказаться от динамического массива указателей
if (lines != NULL)
free(lines);
return 0;
}