Вроде это уже где-то было...
Код
Var
Words:Array[1..100] Of String[7];
Count:Integer;
min,s:String;
i,j,k:Integer;
Begin
ReadLn(s);
i:=1;
While i<=Length(s) Do
Begin
While (i<=Length(s)) And (s[i]=' ') Do
Inc(i);
If i>Length(s) Then
Break;
j:=i+1;
While (j<=Length(s)) And (s[j]=' ') Do
Inc(j);
Inc(Count);
Words[Count]:=Copy(s,i,j-i)
End;
For i:=1 To Count-1 Do
Begin
k:=i;
min:=s[i];
For j:=i+1 To Count Do
If Words[j]<min Then
Begin
k:=j;
min:=Words[j]
End;
If k<>i Then
Begin
s[k]:=s[i];
s[i]:=min
End
End;
For i:=1 To Count Do
WriteLn(s[i])
End.