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

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

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

Добрый день!подскажите,как реализовать функцию,которая принимает двумерный строчный массив, и сортирует их по длине первого слова(до появления пробела).должно как то выполнятся без создания дополнительно массива указателей.

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

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 5
#define M 128
void mySort(char* );
int main()
{
    char s[N][M] = {"Hey you, hey you, devil's little sister Listening to your twisted transistor",
                   "Hold it between your legs Turn it up, turn it up",
                   "The wind is coming through Can't get enough",
                   "Inside you forever preaching",
                   "A lonely life where no one understands you"};
    mySort(s[0]);
    for(int i = 0; i < N; i++)
        puts(s[i]);
    return 0;
}
void mySort(char* str)
{
    int i, j, len, min, minInd;
    char tmp;
    for(i = 0; i < N; i++){
        for(j = i; j < N; j++){
            for(len = 0; *(str + j * M + len) != ' '; len++)
                ;
            if(j == i){
                min = len;
                minInd = j;
            }
            if(min > len){
                min = len;
                minInd = j;
            }
        }
        if(minInd != i){
            for(len = 0; *(str + i * M + len) || *(str + minInd * M + len); len++){
                tmp = *(str + i * M + len);
                *(str + i * M + len) = *(str + minInd * M + len);
                *(str + minInd * M + len) = tmp;
            }
            *(str + minInd * M + len) = '\0';
        }
    }
 
}

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

  1. Объединение двух строк с помощью оператора конкатенации ','
  2. Объявление массива строк с помощью оператора malloc
  3. Вывод содержимого массива с помощью функции printf
  4. Сортировка массива с помощью функции mySort
  5. Передача первого элемента массива в функцию mySort
  6. Объявление локальной переменной i в функции main
  7. Объявление локальной переменной j в функции main
  8. Объявление локальной переменной len в функции main
  9. Объявление локальной переменной min в функции main
  10. Объявление локальной переменной minInd в функции main
  11. Ввод строки в функцию mySort
  12. Вывод отсортированного массива с помощью функции printf
  13. Установка значения локальной переменной min в функцию main
  14. Установка значения локальной переменной minInd в функцию main
  15. Установка значения локальной переменной len в функцию main
  16. Установка значения локальной переменной j в функцию main
  17. Установка значения локальной переменной i в функцию main
  18. Установка значения первого элемента массива в функцию mySort
  19. Объявление локальной переменной tmp в функции mySort
  20. Вывод отсортированного массива с помощью функции printf

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


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

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

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