|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.12.2008, 23:12 | #1 |
Пользователь
Регистрация: 28.10.2008
Сообщений: 77
|
поогите исправить программу со стрингами
Program Laba4;
{Їа®Ја*¬¬* ђ®¬**®ў* Ђ*в®**} var Tekst,TekstN:string; Pozicia,Zad,Per:integer; Symbol:char; begin write('введите ваше предложение'); readln(Tekst); write('введите букву слова начинающиеся с которой будем удалять '); readln(symbol); Tekst:=concat(' ',Tekst,' '); TekstN:=Tekst; Pozicia:=pos(symbol,tekst); While Pozicia<>0 do begin zad:=Pozicia; while tekst[zad] <>' ' do dec(zad); per:=Pozicia; While Tekst[per]<>' 'do inc(per); delete(tekst,zad,per-zad); pozicia:=pos(symbol,tekst); end; writeln('предложение',TekstN ,' без слов начинающихся с ',symbol,' - ',Tekst); Readln; End. эта программа удаляет из текста все слова содержащие букву которую мы задаем, а мне нужно что бы она удаляля только слова начинающиеся с заданной буквы |
30.12.2008, 23:31 | #2 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Должно помочь:
Код:
|
30.12.2008, 23:34 | #3 |
Пользователь
Регистрация: 28.10.2008
Сообщений: 77
|
большое спасибо если вам не сложно можете к проге пояснительный текст сделать?
Последний раз редактировалось Ananim-Pbl6ak; 30.12.2008 в 23:37. |
31.12.2008, 00:05 | #4 |
Участник клуба
Регистрация: 08.03.2008
Сообщений: 1,537
|
Если сами прогу писали, то вам и так должно быть все понятно. Если нет, почитайте о строковых функциях в паскале. Их всего-то у вас две pos и delete. Pos возвращает позицию первого вхождения подстроки(в нашем случае одного символа) в строке, delete удаляет часть строки, начиная с позиции такой-то по такую-то…
А эта часть кода Код:
|
01.01.2009, 17:41 | #5 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
Код:
Последний раз редактировалось capta1n; 01.01.2009 в 17:44. |
02.01.2009, 00:31 | #6 |
Форумчанин
Регистрация: 22.12.2008
Сообщений: 104
|
uses crt;
var s,st,str:string; i:integer; c:char; begin clrscr; write('Stroka -> '); readln(s); writeln; write(' Bukva -> '); readln(c); i:=1; s:=s+' '; st:=''; str:=''; repeat if s[i]<>' ' then st:=st+s[i] else begin if st[1]<>c then str:=str+st+' '; st:=''; end; i:=i+1; until i>length(s); writeln; writeln; writeln(str); readln; end.
@(o_0)@
|
02.01.2009, 03:07 | #7 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
!хорошо
Последний раз редактировалось capta1n; 02.01.2009 в 03:11. |
02.01.2009, 17:46 | #8 |
Форумчанин
Регистрация: 22.12.2008
Сообщений: 104
|
можно еще так
uses crt;
label metka; var s,st:string; i,j:integer; m:char; begin clrscr; write(' stroka -> '); readln(s); writeln; write(' bykva -> '); readln(m); writeln; i:=1; s:=s+' '; st:=''; repeat if s[i]<>' ' then st:=st+s[i] else begin if st[1]=m then begin delete(s,i-length(st),length(st)+1); i:=1; st:=''; goto metka; end; st:=''; end; i:=i+1; metka: until length(s)<i; writeln(s); readln; end.
@(o_0)@
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C++,функции,работа со стрингами | NamelessEndless | Помощь студентам | 3 | 12.11.2008 00:46 |
Исправить ошибку | LLIypLLIyH | Помощь студентам | 5 | 16.06.2008 16:50 |
Помогите исправить программу нужно очень срочно! | Алена | Помощь студентам | 3 | 04.11.2007 18:28 |
Исправить надо бы | Fainder | О форуме и сайтах клуба | 2 | 19.10.2007 20:00 |