| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Работа со строками |
| Автор: Ripper 7.10.2007, 20:21 | ||
| Значит, пользователь вводит строку. Нужно сформировать новую строку из 80 символов, куда поместить первую, "центрировав" все слова. т.е. 1) " f d f fgg s d" 2)" f d f fgg s d " - слова разделены 1 пробелом. Передвигатся с помощью указателей, соответсвенно массивы символов. Я не совсем понимаю как это вообще сделать. Думал взять первую привести к виду "f d f fgg s d" т.е. удалить побокам пробелы и внутри только один оставить, посчитать длину этой строки. а потом необходимое количество пробелов слева и справа для второй. (библиотечные ф-ии незя использовать). Но и это толком не получается. Очень тяжко даются такие задачи :( Вот пробывал сначала к этому виду привести, хотя бы просто удалить все пробелы:
Тут часть прототипных ф-ий не описаны. Но и тут, если вводить много строчек ерунда получается, видимо опять эти указатели :( Уже голова кипит, подскажите плз |
| Автор: zkv 7.10.2007, 20:30 |
| Ripper, эта задача легко решается с помощью СИ-шных sscanf sprintf, либо С++сных std::strstream если ими пользоваться нельзя, то возьми идею - читаешь посимвольно следующее слово из исходной строки, пропуская пробелы, дописываешь в конец новой строки, через один пробел. Все это в цикле, пока исходная строка не кончится. |
| Автор: Walker 7.10.2007, 22:08 | ||||
| Доброго времени суток! Судя по
P.S. Не все указатели бывают одинаково полезны. |
| Автор: Любитель 7.10.2007, 22:44 |
... точно можно использовать стандартный ввод/вывод. Проходили ли функции работы со строками и пр. - вопрос спорный, можно ли юзать - тоже. |
| Автор: Ripper 8.10.2007, 05:08 |
| использовать нельзя библиотечных ф-ий. Эту строку, мы так толком и не понимаем ещё, подключается какая то библиотека, а почему не .h в линуксе и с .h в виндусе, или верней при using namespace std; т.е. кароче нам сказали писать 2 строки, а что это значит мы толком незнаем ) putchar, getchar тоже незнаем таких zkv, Ну я попробую, проверять что-то вроде, символ!=проблел -> записать. Но как потом слева и справа добавить пробелы нужное количество. Почему в конец именно дописывать? |
| Автор: zkv 8.10.2007, 07:23 | ||
| Ripper, сорри, невнимательно задание прочитал, еще центрировать нужно. решение уже Walker привел, ну вот еще, через через массивы, видимо так по заданию нужно было? что не нравится - доработаешь напильником
|
| Автор: 0lmer 9.10.2007, 14:00 | ||
Можно поробовать и так:
|
| Автор: Rickert 9.10.2007, 19:22 |
| 0) Считаем длинну строки. 1) Идём по всей строке, считаем длины слов и их кол-во, попутно занося их в дин. массив. 2) Ну а дальше всё ясно я думаю |
| Автор: Ripper 9.10.2007, 20:58 |
| Всем спасибо |