Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача про строку
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Merlin
Дана строка символов. Удалить из строки все знаки препинания. Вывести исходную и преобразованные строки на экран.
Altair
program Untitled;
var
s,g:string;
r:set of char;
i:byte;
begin
r:=['.',',','!'];
write(' enter string: '); reADLN(s); g:=s;
i:=1;
while i<=length (s) do begin
if s[i] in r then delete (s,i,1) else inc(i);
end;
writeln(s);
writeln(g);
readln
end.

Нажмите для просмотра прикрепленного файла
Множество знаков припинаний сам дополнишь.
Merlin
Спасибо за ответ, к сожалению програмирование пока я не очень освоил, но буду стараться потстигать истины.
Altair
никаких ситин здесь нет, если бы ты хотел что-то постигать ты бы сам решил такую простую задачу.
volvo
Еще вариант:
var
s, g:string;
r: set of char;
i: byte;
begin
r:=['.',',','!'];
write(' enter string: '); readln(s);
g := '';

for i := 1 to length(s) do
if not(s[i] in r) then g := g + s[i];

writeln(s);
writeln(g);
readln
end.
Altair
wacko.gif wacko.gif wacko.gif :smoke: :smoke: :smoke:
и еще

{$X+}
uses crt;
Type
str=object
private
enterstr,resultstr:string;
public
procedure Init;
procedure RunAndDone;
end;

Procedure Str.Init;
begin
write('Enter string ');
readln(enterstr);
resultstr:='';
end;

procedure str.runanddone;
var
r:set of char; i:byte;
begin
r:=['.',',','!'];
i:=1;
for i := 1 to length(enterstr) do
if not(enterstr[i] in r) then resultstr:=resultstr+enterstr[i];
writeln(enterstr);
writeln(resultstr);
readln
end;


var
work:str;
begin
work.init;
work.runanddone;
end.




Музыка играет -
InsightRadio. Moscow Private Progressive Radio
volvo
To: Altair
А через рекурсию слабо? :P
function is_punct(ch: char): boolean;
begin
is_punct := (ch in ['.',',','!'])
end;
function check_string(ch: char): string;
begin
check_string := '';
if not is_punct(ch) then check_string := ch;
end;

function do_it(s: string): string;
begin
if length(s) > 1 then
do_it := check_string(s[1]) + do_it( copy(s, 2, 255) )
else do_it := check_string(s[1]);
end;

var s, g: string;
begin
write('enter string: '); readln(s);
writeln( do_it(s) );
end.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.