замена символа в строке на другой символ, замена символа в строке на другой символ |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
замена символа в строке на другой символ, замена символа в строке на другой символ |
marwell |
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
плиз, помогите решить, а то чет не получается В строке символов надо везде, где встречается символ "пробел", заменить его на два "пробела"
|
volvo |
Сообщение
#2
|
Гость |
Что не получается? Что пробовал, можно посмотреть? Вообще все должно получаться, если идти от хвоста строки в ее начало (и НЕ циклом for, естественно)
|
Unconnected |
Сообщение
#3
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
А если встречается два пробела? Это будет отдельный символ "два пробела" или программа должна обработать каджый?
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
volvo |
Сообщение
#4
|
Гость |
Цитата В строке символов надо везде, где встречается символ "пробел", заменить его на два "пробела" Значит, заменить на 4. Но я настоятельно рекомендую не приводить код до тех пор, пока ТС не покажет свои наработки... |
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
идти от хвоста строки в ее начало (и НЕ циклом for, естественно) А чем так плох for в данном случае? Я бы, думаю, именно с ним сделал..-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
Сообщение
#6
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
А чем так плох for в данном случае? Я бы, думаю, именно с ним сделал.. Я тоже об этом подумал. А еще о том, что не суть важно, перебирать от конца к началу или от начала к концу. Но, несмотря на некоторую излишнюю категоричность утверждения, IMHO именно предложенный вариант самый простой в реализации. В сообщениях volvo некедко явно либо неявно проскальзывает мысль, что предложенный им оптимальный вариант является единственно возможным. И, хотя формально это неверно, с дидактической точки зрения он, возможно, прав - нужно учить писать программы сразу оптимально. PS. А еще неплохо было бы, если бы название темы соответствовало содержанию. Ну нет такого символа "два пробела". Сообщение отредактировано: andriano - |
volvo |
Сообщение
#7
|
Гость |
Цитата А чем так плох for в данном случае? Я бы, думаю, именно с ним сделал.. А зачем тебе лишняя головная боль? Как ты собрался без этой самой головной боли заменить в строке (заметь, не переписать в другую строку, заменяя встреченный пробел на два, а именно заменить) один символ на два? Размер строки меняется, а For-у на это наплевать, он на каждой итерации условие окончания не вычисляет... |
andriano |
Сообщение
#8
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Размер строки меняется, а For-у на это наплевать, он на каждой итерации условие окончания не вычисляет... И что с того?Все равно нам надо просмотреть именно ТО количество символов, которое было в первоначальной строке, а добавленные - не просмаривать. Т.е. все условия цикла с наперед известным количеством повторений. |
volvo |
Сообщение
#9
|
Гость |
Да? Ну, попробуй:
s := 'вот тебе задачка 123';Приведи решение с циклом For, я посмотрю, как, используя информацию об ИЗНАЧАЛЬНОЙ длине строки ты обработаешь последние пробелы... Никаких предварительных пробегов по строке, ибо While-вариант обойдется без этого... Еще раз: НЕ записать в другую строку, а добавить в эту же, по условию... Цитата Все равно нам надо просмотреть именно ТО количество символов, которое было в первоначальной строке, а добавленные - не просмаривать. Ты задание читал внимательно? Нам надо добавлять пробелы не в конец сроки, а в середину... |
Lapp |
Сообщение
#10
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Ты задание читал внимательно? Нам надо добавлять пробелы не в конец сроки, а в середину... volvo, я что-то совсем перестал тебя понимать.. Я так туплю? Что тут плохого: var- ? Добавлено через 2 мин. Delete я вставил для большей общности (типа замена на два других символа) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Unconnected |
Сообщение
#11
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Я, кстати, вчера по другой задаче задумывался над этим: цикл for единожды берет начальный параметр или при каждой итерации и потом что-то прибавляет/вычитает? Видимо, единожды, т.к. вариант Lapp'а работает, а там в качестве задания начального значения параметру цикла используется меняющаяся длина строки..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
Сообщение
#12
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
цикл for единожды берет начальный параметр или при каждой итерации и потом что-то прибавляет/вычитает? Видимо, единожды, т.к. вариант Lapp'а работает, а там в качестве задания начального значения параметру цикла используется меняющаяся длина строки.. В моем коде это прозрачно - первый параметр вроде как очевидно единожды. Второй - менее очевидно, и вопрос вполне законный. Ответ: да, единожды, в начале. Если переменная, использованная для второго предела изменяется во время исполнения, это никак не влияет на реальные пределы.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
andriano |
Сообщение
#13
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Еще раз: НЕ записать в другую строку, а добавить в эту же, по условию... Два вари анта на выбор:
Ты задание читал внимательно? Нам надо добавлять пробелы не в конец сроки, а в середину... j := 1;Правка: исправлена опечатка. Сообщение отредактировано: andriano - |
Lapp |
Сообщение
#14
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Два вари анта на выбор: j := 1; Боюсь, первый вариант пролетает... вот т е бе зад а ч к а 1 23 Впрочем, как и второй.. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
marwell |
Сообщение
#15
|
Бывалый Группа: Пользователи Сообщений: 198 Пол: Мужской Репутация: 1 |
Что не получается? Что пробовал, можно посмотреть? Вообще все должно получаться, если идти от хвоста строки в ее начало (и НЕ циклом for, естественно)
|
andriano |
Сообщение
#16
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Боюсь, первый вариант пролетает... вот т е бе зад а ч к а 1 23 Впрочем, как и второй.. Да, в первом Варианте опечатка. А насчет второго - не понимаю. Специально поставил на комп компилятор паскаля. Полностью программа: var Результат работы: Код <вот т е бе зад а ч к а 1 23> <вот т е бе зад а ч к а 1 23> <вот т е бе зад а ч к а 1 23> <вот т е бе зад а ч к а 1 23> Сообщение отредактировано: andriano - |
Lapp |
Сообщение
#17
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Да, в первом Варианте опечатка. А насчет второго - не понимаю. Ну и во втором тоже опечатка.. Только она почему-то не попала в твой код.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Текстовая версия | 23.04.2024 14:04 |