|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
28.02.2009, 12:10 | #1 |
Регистрация: 28.02.2009
Сообщений: 4
|
Простая задачка про дефис
В общем то для людей поопытнее задача покажется пустяковой
используя язык Си Не крайние слова предложения из пяти слов разделены дефисом. Слова до и после дефиса поменять местами т е например 1 2-3 4 5 должно превратиться в 1 3-2 4 5 или 1 2 3-4 5 в 1 2 4-3 5 ограничения чтение предложения из файла использовать можно только библиотеку stdio.h комплятор QuickC но сколько я над ней думаю, ничего простого придумать не могу люди добрые, помогите кто чем может заранее спасибо |
28.02.2009, 16:17 | #2 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Вот пример:
Принцип такой: строка разбивается на слова, затем ищется слово "-" и слова по обеим сторонам меняются местами. Недостаток в том что любой символ по обеим сторонам кот-ого пробелы будет считаться Словом(напр. пробел или табуляция) так могут поменяются местами пробел с каким-либо словом. Код:
|
28.02.2009, 21:31 | #3 |
Регистрация: 28.02.2009
Сообщений: 4
|
спасибо, довольно ловкое решение
но есть проблема дефис не отделяется пробелами от слов (на то он и дефис) тире отделяется а дефис нет, вот такая вот бяка))) в моем решении (пока еще не совсем доработаном) вначале выводится первые слова без дефиса, затем вся конструкция "слово-СЛОВО" вносится в массив прям из потока внутри массива оно переворачивается в "СЛОВО-слово" выводится и так же из потока выводится остальное получается довольно громоздкое решение и написать к нему блок схему очень долго и трудно я думал еще над таким вариантом(реализовать у мну не получается) вначале слово вносится в память, затем если после него пробел то оно печатается, а если после него дефис то оно не печатается а печатается следующее слово до пробела после пробела печатается то что в памяти(слово перед дефисом) ну и до конца файла из потока вот. так что тема все еще открыта) Последний раз редактировалось Кси; 28.02.2009 в 21:35. |
02.03.2009, 05:09 | #4 |
Пользователь
Регистрация: 26.02.2009
Сообщений: 51
|
Помоему проще, чем решение приведенное ниже, не придумаешь.
Из файла читаем посимвольно в буфер до тех пор пока не встретится символ разделитель. Полученное слово проверяется на наличие дефиса, и если найден просто выводим то что после дефиса перед тем что до него(без фактической перестановки). Код:
Последний раз редактировалось Stilet; 02.03.2009 в 08:00. |
06.03.2009, 08:17 | #5 |
Регистрация: 28.02.2009
Сообщений: 4
|
спасибо огромное за помощь в решении этой задачи)
всегда на информатику все решал сам (все таки научиться более менее программировать надо) а тут подкинули задачу которая не поулчается а время поджимает, другие предметы тоже висят не разгребешь СПАСИБО ВСЕМ КТО ОТКЛИКНУЛСЯ И ВСЕМ КТО ПРОСМОТРЕЛ) тему можно закрыть |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задачка про часики. | RealSHELS | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 13.09.2008 18:17 |
Простая задачка | Dukalis | Общие вопросы C/C++ | 1 | 13.01.2008 18:10 |