Считывание строк из файла и их сортировка - C (СИ)

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

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

дана задача:Описать процедуру sortStrings(S0, S1), считывающую все строки из файла с именем S0 и записывающую эти строки в файл S1. Строки должны быть отсортированы в лексикографическом порядке. Я написала программу...но из исходного файла: c a b в результате получаю: ba c
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>
#include <string.h>
#define SIZE 1000
void sortstring(char *input, char *output){
    FILE *fileinput,
     *fileoutput;
    char **str = NULL;
    int n = 0;
    int i;
 
    fileinput = fopen(input, "r");
    fileoutput = fopen(output, "w");
    while(!feof(fileinput)){
    str = (char **)realloc(str,(n+1)*sizeof(char*));
    str[n] =(char *)malloc(SIZE);
    fgets(str[n], SIZE,fileinput);
    n++;
    }
    qsort(str, n,sizeof(*str) ,(int(*)(const void *, const void *)) strcmp);
    for (i = 0; i < n; i++){
    fprintf(fileoutput,"%s", str[i]);
//  free(str[i]);
    }
    fclose(fileinput);
    fclose(fileoutput);
}
 
int main(){
 
    sortstring("s0.txt","s1.txt");
    return 0;
}
подскажите в чем ошибка..пожалуйста

Решение задачи: «Считывание строк из файла и их сортировка»

textual
Листинг программы
      if (fgets(str[n], SIZE, fileinput))
      {
         n++;
      }

Объяснение кода листинга программы

  1. В условии if проверяется, успешно ли считерирована строка из файла.
  2. Если считывание прошло успешно, то переменная n увеличивается на единицу.

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


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

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

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