Строки, Pascal
Помогите Пожалуйста Решить Одну Задачку в Паскале!!!Буду очень благодарен!!!
Вот собственно:
Дана строка, состоящая из цифр и букв. Сформировать другую строку,содеражащую только цифры предыдущей строки,в том же порядке.
S1:=`12ab4c8d3`
S2:=`12483`
Заранее СПАСИБО!
Вот собственно:
Дана строка, состоящая из цифр и букв. Сформировать другую строку,содеражащую только цифры предыдущей строки,в том же порядке.
S1:=`12ab4c8d3`
S2:=`12483`
Заранее СПАСИБО!
как то так: (не проверял паскаля нет под рукой)
Код: Выделить всё
program test;
var
i: integer;
s1,s2 : string;
begin
s1:='12ab4c8d3';
s2:='';
for i:=1 to length(s1) do
case s1[i] of
'0' : s2:=s2+'0';
//тут аналогично другие цифры сделаеш
'9' : s2:=s2+'9';
end;
end.
ака хинт: коментируйте код, самим же легче будет разобраться 

спасибо большое!А я думал тут как то через delete,с условием.
вариантов куча этот просто самый наглядный 

ака хинт: коментируйте код, самим же легче будет разобраться 

-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
я бы предложил другой вариант, либо:
либо, через множества:
Код: Выделить всё
begin
s1:='12ab4c8d3';
s2:='';
for i:=1 to length(s1) do
if (s1[i]>='0') and (s1[i]<='9') then s2:=s2+s1[i];
WriteLn(s2);
end.
Код: Выделить всё
begin
s1:='12ab4c8d3';
s2:='';
for i:=1 to length(s1) do
if s1[i] in ['0'..'9'] then s2:=s2+s1[i];
WriteLn(s2);
end.
а можно все таки как нибудь с delete пожалуйста...=)
а за чем?
нужно одной строкой обойтись?
нужно одной строкой обойтись?
ака хинт: коментируйте код, самим же легче будет разобраться 

Ну как бы надо с делитом!=)всем большое спасибо за помощь!!!
Код: Выделить всё
S2 := S1;
for i:= Length (S2) downto 1 do begin
if (NOT (S2 [i] in ['0'..'9'])) then
Delete (S2, i, 1);
end;
-
- Сообщения: 375
- Зарегистрирован: 31 авг 2007, 03:06
BBB, угу. всё хорошо. только господину VistBacK'у 5 дней назад уже помогли на другом форуме (он на нескольких форумах запостил одну и ту же просьбу...) (конкретно - здесь