Сделать программу ** c++ :Даны строки: имя фамилия отчество , Нужно чтобы программа...

0 голосов
101 просмотров

Сделать программу на c++ :Даны строки: имя фамилия отчество , Нужно чтобы программа выдавал отчества в алфавитном порядке, как это можно сделать?


Информатика (36 баллов) | 101 просмотров
0

Если перефразировать, то вас есть некоторое количество массивов, состоящих из 3-х строк: Ф., И., О? Я правильно понял?

0

Вы подаете эти массивы (например [Иванов, Иван, Иванович], [Сергеев, Сергей, Сергеевич] ) на функцию, которую хотите написать, и она должна вам вернуть массив из Отчеств, отсортированных в алфавитном порядке (например, [Иванович, Сергеевич]) ?

0

А не, вроде понял, что нужно: отсортировать строки ФИО в алфавитном порядке.

0

В принципе не играет роли как это может быть как 1 строка ФИО или как набор символов, нет ограничений, а вывести нужно только отчества в алф порядке отбросив ФИ

Дан 1 ответ
0 голосов

Код не слишком удобно вставлять, поэтому прикрепляю прогу в файле.

Идея:

  1. Выделить отчество: добавляем в новый вектор буквы после второго пробела ФИО - получаем отчество, и так для всех ФИО - получаем вектор с отчествами.
  2. Отсортировать вектор с отчествами. Делаем с помощью стандартной функции sort, а условие сортировки - буква первого элемента младше буквы второго элемента вектора.
(282 баллов)
0

В принципе все в этой проге классно, но можно обойтись без векторов?

0

Чем они не приглянулись? :)

0

Никогда не встречался с векторами даже, мы их не проходили еще), а вообще вопрос, что делает: vector full_names... что обозначает string в ковычках?

0

Вектор - тот же массив, который выделяется на куче (структура данных в оперативке - доступ напрямую по адресу в памяти). Плюс у вектора есть много методов, которые предоставляют удобство программисту.

0

В этнерпрайзе везде используют вектора, но не обычные массивы (если не нужна супер оптимизация, где критично время обращения к менеджеру кучу - маленькая часть операционки, которая дает память программе в рантайме). А string в треугольных кавычках - это элемент вектора (аля массив, состоящий из строк). Треугольные кавычки потому, что вектор - шаблон. П.С обычный массив выделяется на стеке при компиляции (если только не юзаешь специальные операторы типа new).

0

Это я все к тому, что про векторы можно почитать как можно раньше :)

0

А можно векторы здать с клавы ну как в массиве строк?

0

Можно. Читаешь в строку, а потом заталкиваешь ее в конец вектора: std::vector vector_of_strings; std::string tmp_string; std::cin >> tmp_string; vector_of_strings.emplace_back(tmp_string);

0

К сожалению, в предыдущем комменте заметил, что удаляется все, что указано в треугольных скобках. Нужно vector"треугольная скобка"string"треугольная скобка" vector_of_strings ...