![]() |
|
Модераторы: bsa |
![]()
|
|
| Gtar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Добрый день!
Нашел интересную задачку, Нужно написать интерактивную программу, которая спрашивает у пользователя 2 слова или фразы ( размер которых не должен превышать одну строку ввода на экране). Программа затем должна ответить пользователю анаграммы ли введенные фразы или нет. И тут самое интересное: Пробелы, пунктуацию и заглавные буквы нужно игнорировать. Для решения использовать С или С++ строки. Пример: строка1: Eleven plus two! строка2: Twelve, plus one вывод: введенные фразы - анаграммы! Сразу в голову пришел следующий алгоритм: 1. Считать строки 2. Отсортировать по символам. 3. Удалить пунктуацию, пробелы и избавиться от заглавных букв. 4. Сравнить строки используя стандартную функцию strcmp(str1, str2). Алгоритм вроде как работает, только вот с третьим пунктом я застрял... Точнее есть идея, к примеру, используя ASCII коды удалить ненужные символы, но я думаю что должны быть решения проще !? Буду благодарен за участие в дискуссии
Это сообщение отредактировал(а) Gtar - 25.1.2008, 09:04 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
есть стандартные функции isalpha и isupper. Первая определит, что это символ, вторая - что это [НЕ] заглавная буква. Соответственно проходишься по строкам и формируешь две новые строки из символов, которые подходят под заданный критерий. |
|||
|
||||
| warmonger_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 155 Регистрация: 7.7.2007 Где: г. Киев Репутация: 1 Всего: 3 |
насчет заглавных букв, можно написать класс нечувствительный к регистру подобный string. У Sutter'a было...
--------------------
Make everything as simple as possible, but not simpler.Albert Einstein |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
||||
|
||||
| Gtar |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 8 Регистрация: 14.1.2008 Репутация: нет Всего: нет |
Вот именно такую замечательную функцию как isalpha я и искал! Сначала хотел сказать, что она естесвенно цифры выбрасывать будет, но потом нашел еще и функцию isdigit, которая тож будет очень кстати. Завтра проверим в деле =) PS: А алгоритм описанный выше вцелом нормальный для такой задачи ? Это сообщение отредактировал(а) Gtar - 24.1.2008, 07:31 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 6 Всего: 162 |
почему бы и нет ) |
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |