1). Я так понял надо из слов удалять последние буквы предыдущих слов.
Тогда примерно так:
Код
Const
Separators:Set Of Char = [' ',',','.','!','?',';']; {Добавишь чего, если захочешь}
Var
s:String;
i,j:Integer;
Begin
Write('Enter String: ');
ReadLn(s);
While s<>'' Do
Begin
While (s<>'') And (s[1] In Separators) Do
Delete(s,1,1);
If s='' Then
Break;
i:=2;
While (i<=Length(s)) And (Not(s[i] In Separators)) Do
Inc(i);
If i>Length(s) Then
Begin
WriteLn(s);
Break
End;
j:=i+1;
While j<=Length(s) Do
If s[j]=s[i-1] Then
Delete(s,j,1)
Else
Inc(j)
WriteLn(Copy(s,1,i-1));
Delete(s,1,i)
End
End.
Или что-то похожее...