06.05.2011, 23:42 | #1 (permalink) | |
Новичок
Регистрация: 06.05.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строки
У меня возникла проблема с задачей,нужно ввести перед каждым восклицательным знаком слово "Привет".Я сделал,но получилось криво:"Привет пишется у меня только перед первым "!",а надо перед каждым.....что не так? Цитата:
|
|
06.05.2011, 23:42 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Решение проблемы может скрываться в одной из этих тем Строки в С Строки Строки Строки |
07.05.2011, 11:55 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А не так вот что: Вы не учитываете, что после каждой вставки сбивается нумерация символов строки. Вот работающий вариант программы (кириллица заменена английским по причине проблем с кодировками. Исправьте, если надо):
Код:
Uses crt; Var s,n:string; i:integer; Begin clrscr; Writeln('Enter the string:'); Readln(s); n:=' Hello'; i:=0; Repeat Inc(i); if s[i]='!' then begin insert(n,s,i); Inc(i,Length(n)); end; Until i=Length(s); Writeln(s); Readln; End. |
07.05.2011, 18:07 | #3 (permalink) | ||
Новичок
Регистрация: 06.05.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо,но такое с INC мы еще не проходили,но у меня все заработало когда я в цикле поменял порядок цикла
то есть строчку Цитата:
Цитата:
|
||
07.05.2011, 18:54 | #5 (permalink) |
Новичок
Регистрация: 06.05.2011
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
07.05.2011, 19:58 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
А Вы думаете, тут какая-то ирония? Да нет же, без всяких шуток - действительно красивое нешаблонное решение: идти по строке с "верхнего" конца. Тогда вставки не сбивают нумерацию, и всё получается. Я бы не додумался. Правда. Браво!
P.S. А еще есть операторы Dec(N) и Dec(N,m). Это когда не с плюсами, а с минусами, т.е. (N-1) и (N-m). |
13.05.2011, 19:48 | #7 (permalink) |
Member
Регистрация: 13.05.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
опа, Артем ты что ли? узнаю программу))))))
кстати я когда делал похожую задачу, мне паскаль вывел ошибку, что нужно вставить downto) |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|