есть не только идеи, но и алгоритмы решения. сначала нужно написать эквивалент функции strcmp():Код | int myStrCmp(const char *s1, const char *s2) { int r = 0; while(1) { r = *s1 - *s2; if ( !(*s1 && *s2) ) break; ++s1; ++s2; } return r; } |
Затем нужно написать сортировщик. На вход ему подается указатель на массив указателей на массивы символов (тип const char **) и размер массива указателей (тип size_t). Затем делаешь 2 вложенных цикла, один от начала до конца-1, а второй от текущего положения первого массива+1 до конца. Сравниваешь строки (с помощью myStrCmp), на которые указывают индексные переменных этих циклов. Если строка второго цикла меньше строки первого (результат myStrCmp < 0), то меняешь указатели местами... |