Преобразовать строку, записав символы каждого слова этой строки в обратном порядке - Free Pascal
Формулировка задачи:
Добрый день!
Помогите пожалуйста написать программу: преобразовать строку, записав символы каждого слова этой строки в обратном порядке.. Пожалуйста, помогите, никогда не работал со строками, не получается написать программу. Вот, пробовал написать, но программа действует не всегда. К примеру на короткую строку "abc def" выводит "cba fed", а если ввести что то подлиннее, то программа не работает:
Program Stroki;
var
str, temp: string;
len, i, j, b, a: byte;
begin
readln(str);
len := length(str);
a:=0;
b:=1;
for i:=1 to len do
begin
if str[i] = ' ' then
begin
for j:=b to a do
temp[j]:=str[len-j-3];
b:= a+2;
a:=a+2;
end
else
a:= a + 1;
if i=len then
for j:=b to a-1 do
temp[j]:=str[len-j+5];
end;
for i:=1 to len do
write(temp[i]);
readln;
end.Решение задачи: «Преобразовать строку, записав символы каждого слова этой строки в обратном порядке»
textual
Листинг программы
var s,s1,tmp:string;
i:integer;
begin
writeln('stroka=?');
readln(s);
s:=s+' ';
while length(s)>0 do
begin
tmp:=copy(s,1,pos(' ',s));
for i:=length(tmp) downto 1 do s1:=s1+tmp[i];
delete(s,1,length(tmp))
end;
delete(s1,1,1);
writeln('result',#13,s1);
end.