Сортировка строк файла по алфавиту - C (СИ)

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

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

Здравствуйте. Необходимо отсортировать считать строки из файла, отсортировать их по алфавиту с помощью шейкер-сортировки, и вывести на экран. Вот что я смог написать, проблема именно в том, что я не могу понять как сортировать строки.
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. int main(void)
  6. {
  7. char s[10][20];
  8. char *p[10];
  9. FILE *f;
  10. int i=1;
  11. int k=1;
  12. int m,N;
  13. char *buf;
  14. f = fopen ("input.txt", "r");
  15. while (!feof(f))
  16. {
  17. fscanf (f, "%s", s);
  18. i++;
  19. *p[i]=s[i][0];
  20. }
  21.  
  22. fclose (f);
  23.  
  24. do {
  25. N = 0;
  26. for(m=10; m > 0; --m) {
  27. if(strcmp(p[m-1],p[m])>0) {
  28. buf = p[m];
  29. p[m-1] = p[m];
  30. p[m] = buf;
  31. N = 1;
  32. }
  33. }
  34. for(m=1; m < 10; ++m) {
  35. if (strcmp(p[m-1],p[m])>0) {
  36. buf = p[m-1];
  37. p[m-1] = p[m];
  38. p[m] = buf;
  39. N = 1;
  40. }
  41. }
  42. } while(N);
  43. for (k=0; k<i; k++)
  44. {
  45. printf ("\t\t %s \n", p[k]);
  46. }
  47.  
  48. }

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

textual
Листинг программы
  1. char strings[10][32], str[32];
  2. FILE *f;
  3. int count = 0;
  4. if((f = fopen ("input.txt", "r") == NULL){
  5.   return 1;
  6. }
  7. while (feof(f) == 0 || count > 10)
  8. {
  9.   fscanf (f, "%s", str);
  10.   strcpy(strings[count++], str);
  11. }
  12. fclose (f);

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

  1. Объявляются массив строк и буферная строка
  2. Открывается файл для чтения
  3. Проверяется успешность открытия файла
  4. Если файл не открылся, то возвращается 1
  5. Запускается цикл, который будет выполняться пока не достигнется конец файла или не будет прочитано более 10 строк
  6. В каждой итерации цикла считывается строка из файла и сохраняется в буферной строке
  7. Считанная строка копируется в соответствующую ячейку массива строк
  8. Увеличивается счетчик количества прочитанных строк
  9. Закрывается файл
  10. Возвращается 0, что означает успешное выполнение программы

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


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

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

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы