![]() |
Модераторы: bsa |
![]() ![]() ![]() |
|
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
Может быть есть у кого нибудь готовый пример?
Написать программу, которая читает текст и печатает его с добавлением последовательных номеров строк, при этом программа должна собирать все слова текста, сохраняя номера строк, в которых они встречались. Когда просмотр закончен, нужно построить таблицу, содержащую все собранные слова со списком соответствующих строк и количеством вхождения этого слова в текст в порядке возрастания количества вхождений. Для представления слов, встречающихся в тексте можно использовать бинарное дерево, каждый узел которого содержит слово в качестве значения ключа и начало списка номеров строк. Это сообщение отредактировал(а) MoxHaToe - 20.5.2009, 14:55 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
MoxHaToe, что именно не получается или вызывает затруднения?
|
|||
|
||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
Один из вариантов решения не получается, как перехватить ввод enter при вводе строки string. Чтобы посчитать кол-во строк?
|
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Э... а зачем его перехватывать? Ты при вводе можешь получать только строки (нужно изрядно повозиться, чтобы перехватывать каждый вводимый символ). Т.е. ты даешь команду fgets(buffer, buf_size, stdin); И в buffer будет вся строка, которую ввел пользователь.
|
|||
|
||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
В цикле можно сделать условие на нажатие enter? то есть действие на нажатие клавиши о переносе строки?
|
|||
|
||||
zim22 |
|
|||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
getline из <string> по умолчанию реагирует на Enter и std::cin из <iostream> |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
MoxHaToe, нужно сильно поизвращаться, чтобы получать символы из стандартного ввода до того, как пользователь нажал на ввод. Короче, строка в программу поступает только после нажатия на ввод.
|
|||
|
||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
Как здесь правильно написать, чтобы в vec2 заносился номер строки? |
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
может быть так?
p.s. не обращайте внимание на форматирование кода - мне так удобней было. Это сообщение отредактировал(а) zim22 - 24.5.2009, 19:29 |
||||
|
|||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
Мне просто в дальнейшем как то надо запомнить, число повторений слов и номера строк, в которых они встречаются, как это сделать. Вот такой у меня вопрос.
Добавлено через 1 минуту и 21 секунду Думал на счёт того, чтобы создать вектор char и добавлять к нему соответствующие номера строк при поиске одинаковых слов. Добавлено через 9 минут и 31 секунду
На данный момент, работает только число потворений (взят пример). |
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
сохраняйте слова в map. ключом будет слово, значением - число его повторений в тексте. первоначально значение = 0, в дальнейшем инкрементируется на 1. задача состоит из подзадач. реализуя их вы реализуете задачу.
Это сообщение отредактировал(а) zim22 - 24.5.2009, 20:21 |
||||
|
|||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
*Реализация для вводимого текста также возможна.
|
|||
|
||||
zim22 |
|
||||
![]() depict1 ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2682 Регистрация: 15.1.2009 Где: Украина Репутация: 29 Всего: 69 |
каждому слову будет соответствовать свой set, в котором будут номер строк указаны, в которых оно встречается. число повторений есть размер set'a
|
||||
|
|||||
sdukshis |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 23.3.2009 Репутация: нет Всего: 1 |
Вот примерная идея.
Это сообщение отредактировал(а) sdukshis - 25.5.2009, 21:05 |
|||
|
||||
MoxHaToe |
|
|||
Новичок Профиль Группа: Участник Сообщений: 24 Регистрация: 31.1.2009 Репутация: нет Всего: нет |
О спасибо, разобрался. Делал попытку через массив сделать, но понял, что всё гораздо сильно усложняется.
Это сообщение отредактировал(а) MoxHaToe - 26.5.2009, 14:46 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "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. |