uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
||||||
#1 | ||||||
Выделить в тексте лишние пробелы между словами - C++19.05.2009, 05:25. Просмотров 4318. Ответов 16
Метки нет Все метки)
(
ЕЩе одна задачка из Павловской... Прошу помощи!!! Если вам лень решать всю задачу, то меня очень интересует второй пункт... Но буду рад решению всей задачи
![]() С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 500 символов (длина строки текста не должна превышать 70 символов). Имя файла должно иметь расширение DAT. Написать программу, которая: - выводит текст на экран дисплея; - по нажатию произвольной клавиши поочередно выделяет в тексте лишние пробелы между словами; - выводит текст на экран дисплея еще раз, убирая лишние пробелы между словами и начиная каждое предложение с новой строки. Добавлено через 8 минут 59 секунд Первая часть есть, помогите с остальным =)
0
|
|
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
|
19.05.2009, 05:25 |
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выделить в тексте лишние пробелы между словами (C++):
16
Исключить лишние пробелы между словами (комментарии) - C++ Строка: Удалить лишние пробелы между словами - C++
Вывести на экран содержимое файла удалив лишние пробелы между словами - C++ Работа с файлами. Удалить все лишние пробелы, оставив между словами не более одного пробела - C++
|
RazorQ
581 / 348 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
|
||||||
19.05.2009, 08:25 | #2 | |||||
Открывать надо в двоичном режиме
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
|
19.05.2009, 10:06 [ТС] | #3 |
RazorQ, а причем тут двоичный режим? В задание это не указано.
0
|
accept
4829 / 3250 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
|
|
19.05.2009, 10:26 | #4 |
Код
char buf [70]; ![]() Код
strstr(строка, " ") Код
strspn(позиция, " ") выделять наверное с помощью какой-нибудь нестандартной функции из conio.h (там были функции для раскрашивания символов)
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
||||||
20.05.2009, 11:02 [ТС] | #5 | |||||
Блин, уже который час ломаю голову, как сделать так, чтобы выводилась строка, но при этом выделяла каждый лишний пробел...
Пока вот, что получилось... Там все до кучи =)
0
|
RIO
15 / 15 / 1
Регистрация: 13.05.2009
Сообщений: 331
|
||||||
20.05.2009, 22:22 | #6 | |||||
![]()
Сделал без подсветки :
0
|
accept
4829 / 3250 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
|
|
21.05.2009, 04:02 | #7 |
здесь выводятся позиции повторяющихся пробелов и их количество
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
|
22.05.2009, 19:25 [ТС] | #8 |
А для чего это?
![]() Что дадут мне позиции пробелов и их кол-ва? ![]()
0
|
accept
4829 / 3250 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
|
|
23.05.2009, 07:16 | #9 |
Код
- по нажатию произвольной клавиши поочередно выделяет в тексте лишние пробелы между словами; - выводит текст на экран дисплея еще раз, убирая лишние пробелы между словами и начиная каждое предложение с новой строки. потом точно так же, с этих позиции можно перезаписывать строки, удаляя пробелы кроме последнего и потом выводить
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
|
23.05.2009, 08:24 [ТС] | #10 |
Я вообще как понял реализацию...
Сначала мы ищем первые лишние пробелы, раскрашиваем. Потом вторые, раскрашиваем и т.д., а как конец файла, все выделенные пробелы удаляются. Но у меня как то не получается выделить их ![]()
0
|
accept
4829 / 3250 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
|
|
23.05.2009, 08:58 | #11 |
![]() надо два раза текст читать и два раза его выводить, первый раз раскрашивать, потом делать нестандартный clrscr и второй раз, читая текст, определять где лишние пробелы (у тебя, конечно, проще выглядит, если читать посимвольно типа и пробелы лишние определять, но так ты ещё дольше будешь писать прогу), читать текст можно построчно и работать со строкой, пока она в памяти, через уже готовые функции поиска, правки и вывода, а потом уже выводить её на экран Добавлено через 3 минуты 30 секунд хотя, можно попробовать, выводя текст посимвольно на каждом втором пробеле проматывать до непробела и, если встретится конец файла, просто закончить, а если символ, то продолжить вывод (и так в цикле)
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
|
23.05.2009, 09:26 [ТС] | #12 |
А как считать текст дважды? Как я понимаю, надо переместить указатель вначало после первого прочтения. А как это делается?
0
|
accept
4829 / 3250 / 165
Регистрация: 10.12.2008
Сообщений: 10,569
|
|
23.05.2009, 09:41 | #13 |
rewind(file); - описана в stdio.h
0
|
Monte-Cristo
2794 / 1380 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
|
|
23.05.2009, 09:44 | #14 |
fseek()
0
|
uto
6 / 6 / 0
Регистрация: 07.05.2009
Сообщений: 94
|
|
23.05.2009, 09:45 [ТС] | #15 |
Т.е. внутри надо писать название самого файла?
Добавлено через 31 секунду Эээ, т.е. можно двумя способами чтоли? ![]()
0
|
23.05.2009, 09:45 | |
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
|
23.05.2009, 09:45 |
Привет! Вот еще темы с ответами:
15
Убрать в текстовом файле ненужные пробелы, оставив между словами по одному, между предложениями по два. - C++ Пробелы между словами\предложениями - C++ В тексте удалить лишние пробелы и расположить слова в порядке возрастания длинн - C++
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |