Сортировка строк в массиве по первому слову - 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';
- }
- }
- }
Объяснение кода листинга программы
- Объединение двух строк с помощью оператора конкатенации ','
- Объявление массива строк с помощью оператора malloc
- Вывод содержимого массива с помощью функции printf
- Сортировка массива с помощью функции mySort
- Передача первого элемента массива в функцию mySort
- Объявление локальной переменной i в функции main
- Объявление локальной переменной j в функции main
- Объявление локальной переменной len в функции main
- Объявление локальной переменной min в функции main
- Объявление локальной переменной minInd в функции main
- Ввод строки в функцию mySort
- Вывод отсортированного массива с помощью функции printf
- Установка значения локальной переменной min в функцию main
- Установка значения локальной переменной minInd в функцию main
- Установка значения локальной переменной len в функцию main
- Установка значения локальной переменной j в функцию main
- Установка значения локальной переменной i в функцию main
- Установка значения первого элемента массива в функцию mySort
- Объявление локальной переменной tmp в функции mySort
- Вывод отсортированного массива с помощью функции printf
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д