Написать программу на C++, которая обрабатывает введённую строку и выставляет все буквы в алфавитном порядке. Например, ввод: input example, вывод: aeilmnptux.
Ответы на вопрос
Для решения задачи на C++ можно использовать массив логических значений, который позволит расположить буквы в алфавитном порядке и убрать повторяющиеся символы.
Обратите внимание, что в примере input example буквы e и p встречаются дважды, но в результате выводятся только один раз. Значит, программа должна не только сортировать буквы, но и удалять повторения.
Программа на C++
#include
#include
#include
using namespace std;int main() {
string s;
bool letters[26] = {false};
cout << "Введите строку: ";
getline(cin, s);
for (unsigned char c : s) {
c = tolower(c);
if (c >= 'a' && c <= 'z') {
letters[c - 'a'] = true;
}
}
cout << "Результат: ";
for (int i = 0; i < 26; i++) {
if (letters[i]) {
cout << char('a' + i);
}
}
cout << endl;
return 0;
}Пример работы программы
Ввод:
input exampleВывод:
aeilmnptuxОбъяснение работы программы
С помощью
getline(cin, s)считывается вся строка целиком, включая пробелы.Создаётся массив
letters[26], в котором каждому элементу соответствует одна буква английского алфавита.Программа перебирает все символы введённой строки.
Функция
tolower()преобразует заглавные буквы в строчные.Если символ является английской буквой, соответствующий элемент массива получает значение
true.Затем программа проходит по массиву от первой буквы алфавита до последней и выводит только те буквы, которые встретились в строке.
Например, для строки input example получаем буквы:
i n p u t e x a m p l eПосле сортировки и удаления повторений:
a e i l m n p t u xИтоговый результат:
aeilmnptuxПреимущества решения:
Буквы автоматически выводятся в алфавитном порядке.
Повторяющиеся буквы удаляются.
Пробелы, цифры и знаки препинания игнорируются.
Программа работает как со строчными, так и с заглавными английскими буквами.
Не требуется использовать дополнительную сортировку.
Сложность алгоритма: O(n), где n — длина введённой строки. Дополнительная память — O(1), поскольку используется массив фиксированного размера из 26 элементов.
Таким образом, программа полностью соответствует приведённому примеру и выводит все уникальные английские буквы строки в алфавитном порядке.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili

