Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Сортировка строк


Автор: Atanvarno 11.3.2008, 11:34
Напишите функцию, которая принимает в качестве аргумента массив строк и сортирует их по алфавиту.
Недопустимо пользоваться страндартным функционалом С++, все функции должны быть реализованы самостаятельно. 
 smile  Help me please.
Может у кого есть идеи? Буду благодарен любой подсказке.

Автор: bsa 11.3.2008, 12:15
есть не только идеи, но и алгоритмы решения.
сначала нужно написать эквивалент функции 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), то меняешь указатели местами...

Автор: Atanvarno 11.3.2008, 18:47
Спасибо большое!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)