Я новичок в C++, и я попал в школьную задачу, чтобы сделать программу, которая сортирует строки в алфавитном порядке. Так может кто-нибудь объяснить мне, как я могу это сделать?C++ Алфавитно сортировочные строки
ответ
Строки сравниваются по буквам в порядке. Давайте вспомним, что строки в конце дня представляют собой массивы символов, и давайте вспомним также, что персонажи имеют числовое значение сами по себе, начиная от нижнего регистра «a» и заканчивая «Z», «a» самое низкое значение в алфавите и верхний регистр Z является самым высоким. Таким образом, за шторами при сравнении двух строк со сравнительными операторами вы сопоставляете друг другу два числовых значения, если они совпадают, тогда сравнение берется со следующей буквой в их строке. Например, «собака» будет помещена первыми, чем «кукла», если вы будете сортировать от самого низкого до самого высокого.
"dog" < "doll" //This will return true
Теперь для сортировки, я бы порекомендовал вам взглянуть на методов сортировки в структур данных, или попытаться придумать один себе знать, как строки сравнения.
Прежде всего, пожалуйста, не просите людей делать домашнее задание здесь. Однако, так как у вас уже есть большая часть программы вниз, я дам вам несколько советов:
Во-первых, вам нужно прочитать в строках, и хранить их в некотором роде:
- строк (Достойный метод)
- массивов (Вероятно, следует избегать их)
- векторов (гораздо лучше альтернативы массивам)
Теперь вы можете использовать встроенную функцию зЬй :: сортировать (но я думаю, вы 'не разрешено используйте это как это домашнее задание) или напишите функцию сортировки по своему усмотрению.
Подумайте о том, как искать строку/массив/вектор для определенной буквы в алфавите («Поисковая строка для поиска в Google» содержит несколько методов) и рассмотрим эффекты прописных, строчных и пунктуационных знаков.
Основная проблема заключается в том, что компьютер не видит, что письмо приходит «до» другого - посмотрите, можете ли вы найти способ преобразования из символа в число (подсказка: используйте литье в сочетании с ASCII-таблица).
Вот и вся информация, которую я дам, удачи!
EDIT: Несколько слов о методах сортировки
Есть несколько основных методов сортировки:
- BubbleSort - Переход через строку в порядке, меняя буквы, которые находятся в неправильном порядке. Повторите это снова и снова, пока строка не отсортирован
- сортировка вставкой - для каждой буквы, поместите его в новый массив/строку/вектор в правильном месте
- Quicksort - Разделить строку на две части, сравнить половинки, участки подкачки и повтор
Используйте std::sort
(вторая версия) и напишите функцию сравнения, которая сравнивает символы в алфавитном порядке, а не лексикографически.Если это имеет дело с i18n/l10n, тогда эту функцию может быть сложнее записать.
В чем разница между лексикографическим порядком и алфавитным порядком в строках? – moooeeeep
@moooeeeep - лексикографическое сравнение основано на базовой кодировке - как правило, что-то основано на ASCII на английском языке. Это означает, что «z» предшествует «A» ... и все числа на самом деле. Сначала по алфавиту сначала ставятся числа, затем «a», затем «A», затем «b» и т. Д. –
- 1. блестящие сортировочные числа как строки
- 2. Assembly + C - Сортировочные структуры
- 3. Сортировочные строки, C++ в C#: «преобразование не поддерживается библиотекой»
- 4. PDO и алфавитно-цифровые строки?
- 5. Сортировочные ссылочные-типов из C++ в C#
- 6. Алфавитно-цифровое приращение строки, используемое для цикла
- 7. Сортировочные заголовки
- 8. C++ сортировочные - специальные символы после нормальных букв
- 9. сортировочные строки, содержащие числа и буквы
- 10. Правильные сортировочные цепочки, такие как строки
- 11. DataTables сортировочные 1.9.4 отключить для конкретной строки
- 12. Postgres, сортировочные
- 13. сортировочные элементы из списка
- 14. Преобразование целых чисел в алфавитно-цифровые строки
- 15. г - извлечь алфавитно-цифровые строки из текста
- 16. Сколько перестановок алфавитно-цифровой строки длины 32
- 17. Scala сортировочные параметры
- 18. в C Структуры ++ сортировочные с QSort
- 19. сортировочные суб-частей вектора в C++
- 20. с ++ сортировочные класса вектор
- 21. сортировочные векторы пользовательских объектов
- 22. C# KeyDown алфавитно-цифровая культура зависит!
- 23. C# Алфавитно-цифровая строка для длительного преобразования
- 24. Алфавитно-цифровой метод hashCode
- 25. Collections.sort не сортировочные данные
- 26. сортировочные инициализатора списки
- 27. Grails сортировочные asList(), сортировки()
- 28. Вставка Сортировочные номера
- 29. Сортировочные массивы в Монго
- 30. ListView DataBind Сортировочные значения
Во-первых, вы получаете все строки. Собираетесь ли вы получить его от ввода или файла? Впоследствии вы должны увидеть, можете ли вы использовать std :: string или вам нужно использовать char array. Кроме того, проверьте, разрешено ли вам использовать std :: sort или если вам нужно выполнить сортировку самостоятельно. Так как вы на нем, проверьте, нужно ли хранить строку в массиве или, например, использовать std :: vector. – wendelbsilva
Я должен вводить строки от пользователя в массиве, и у меня нет никаких ограничений. Это нужно только для правильной работы программы. –
Сначала напишите программу, которая успешно открывает файл. Убедитесь, что он работает. Затем добавьте код для чтения строки из файла в цикле. Убедитесь, что он работает. Затем добавьте код для хранения каждой строки, считанной в массиве, убедитесь, что она работает. И т. Д. Вы сделали какие-либо из этих предварительных шагов? – PaulMcKenzie