![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
AGENT_KGB |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Задача найти и заменить слово, введенное с клавиатуры на другое, в массиве строк. Желательно в виде функции.
|
Sozialist |
![]()
Сообщение
#2
|
![]() Клавиатурный тиран ![]() ![]() Группа: Пользователи Сообщений: 79 Пол: Мужской Реальное имя: Дмитрий Репутация: ![]() ![]() ![]() |
В чем затруднение? Стандартный поиск с FOR, POS, потом DELETE и INSERT
|
AGENT_KGB |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Пробовал, но у меня зацикливает-препод мняет "баба" на "баобаба".
|
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Так ты покажи, что сделал. Подправим.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
AGENT_KGB |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Ну вот она:
begin
write ('Find: ');
readln (w1);
write ('Change: ');
readln (w2);
while pos(w1,s)>0 do
begin
delete(s,pos(w1,s),length(w1));
insert(w2,s,pos(w1,s));
end;
for i:=1 to length (s) do
write (s[i]);
end;
Вообще работает, но зацикливает. |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Ну, скажем, начать исправлять уже отсюда:
Цитата delete(s,pos(w1,s),length(w1));
insert(w2,s,pos(w1,s)); { <--- После удаления части строки в предыдущем операторе ??? }
Надо запомнить позицию, и потом (при вставке) не искать ее еще раз, а использовать то, что уже было найдено... Кроме этого, где массив строк? Или ты хочешь оформить это функцией и вызывать в цикле? P.S. Еще одно - ты написал Цитата найти и заменить слово, введенное с клавиатуры на другое , а можешь получить замену последовательности символов. Чтобы было слово, надо чтоб оно было с обоих сторон ограничено либо разделителями, либо началом/концом строки (как находить в строке именно слово одним If-ом - было на форуме, искать по слову "трехэтажную") |
AGENT_KGB |
![]()
Сообщение
#7
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Куда записывать позицию если слово не одно? В массив?
|
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Примеры приводи, или выражайся как-нибудь так, чтобы было понятно. ГДЕ не одно слово?
|
AGENT_KGB |
![]()
Сообщение
#9
|
![]() Группа: Пользователи Сообщений: 6 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
В тексте надо заменить все слова на введенное с клавиатуры, как в Ворде.
|
![]() ![]() |
![]() |
Текстовая версия | 15.04.2025 18:42 |