![]() |
|
Модераторы: bsa |
![]()
|
|
| muhail0608 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Всем доброго времени суток!!
Появилось вот такое задание написать программу на языке C++ чересстрочного слияния двух текстовых файлов (первая строка выходного файла - первая строка первого входного файла, вторая строка выходного файла - первая строка второго входного файла, третья строка выходного файла - вторая строка первого входного файла, четвертая строка выходного файла - вторая строка второго входного файла) с удалением в каждой строке слов после которых стоит любой знак препинания.. У меня есть похожая программка, только в ней нужно было удалить слова после которых стоят знаки препинания..
Помогите пожалуйста переделать первую процедуру, в мое задание, в ней как раз и происходит процесс удаления слов после которых стоит знак препинания, а то с С++ совсем туго.. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
Я бы сделал чередование строк так:
Это сообщение отредактировал(а) bsa - 5.12.2009, 00:17 |
|||
|
||||
| comcon1 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 11.6.2005 Где: Москва ДАС-МГУ Репутация: нет Всего: 17 |
На счет удаление слов, после которых стоит знак препинания - здесь разумно использовать регулярные выражения:
найти вот такое рег. выражение в каждой строке "\s([a-zA-Z])[\.,?!-:]" и заменить: " \1" (ну это например) Но дальнейшие советы тебе будут зависить от того, какой библиотекой регулярных выражений ты будешь пользоваться. Я всегда пользуюсь boost::regexp, но для тебя это может не подойти. |
|||
|
||||
| muhail0608 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 4.12.2009 Репутация: нет Всего: нет |
Парни я перепутал задание..
Мне нужно чтобы программа меняла в каждой строке первое и последнее слово местами в выходном файле.. А в теме программа которая удаляет слова после которых стоит знак препинания.. |
|||
|
||||
| bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 85 Всего: 196 |
muhail0608, читаешь строки входного файла с помощью getline (как у меня в примере), затем находишь позиции первого и последнего не пробельного символа строки (это начало первого и конец последнего слов), потом находишь первый пробельный символ после первого непробельного и последний перед последним непробельным. Затем с помощью std::string::substr() выводишь в выходной файл последнее слово, середину строки, первое слово. Все необходимые методы для выполнения перечисленных операций у std::string есть. Цикл у тебя будет только один - пока не кончится входной файл.
|
|||
|
||||
![]()
|
| Правила форума "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. |