Как отсортировать массивы символов по номерам в них - PullRequest
0 голосов
/ 01 февраля 2020

Мне дали домашнее задание для моего класса c ++ OOP.

Я застрял в этой части, которая требует от меня сортировки массива типа "Student", который является классом. по атрибуту char * studentID. Идентификатор имеет следующий формат: «IBXXXXXX» X является числом.

Как отсортировать этот массив объектов по этому атрибуту? Не уверен, как сравнить числа в массиве символов.

Пример данных: IB140116 IB130115 IB130114

Мне нужно получить: IB130114 IB130115 IB140116

Заранее спасибо.

1 Ответ

0 голосов
/ 03 февраля 2020

Вы можете отсортировать его по номеру, для преобразования вы можете использовать эту функцию:

int StringToNumber(char *str)  // for example str = IB123456
{
    if (str != nullptr)
    {
        str += 2;              // str now is 123456
        return std::stoi(str); // returns 123456 in the format of int   
    }
    return 0;
}
...