Q:

задача на ASCIIZ – строки (строки с нулевым окончанием)

Дан текст.  Напечатать все слова, отличные от последнего, 
предварительно преобразовав каждое из них по следующему 
правилу:
- первую и последнюю буквы слова поменять местами;

A:

Вот, то, что получилось у меня:
Program words;

Uses CRT;

Var
  StrMas: Array[0..199] Of String;
  Str, MStr: String;
  MasInd, StrInd, StrLen, i: Word;
  C: Char;

Begin
  Write('Введи строку: ');
  ReadLn(Str);

  StrLen:=Length(Str);
  StrInd:=1;
  MasInd:=0;
  While (StrInd<=StrLen) Do
    Begin
      While ((Str[StrInd]=' ') And (StrInd<=StrLen)) Do
        Inc(StrInd);

      MStr:='';
      While ((Str[StrInd]<>' ') And (StrInd<=StrLen)) Do
        Begin
          MStr:=MStr+Str[StrInd];
          Inc(StrInd);
        End;

      If (MStr<>'') Then
        Begin
          C:=MStr[1];
          MStr[1]:=MStr[Length(MStr)];
          MStr[Length(MStr)]:=C;
          StrMas[MasInd]:=MStr;
        End
      Else
        Break;

      Inc(MasInd);
      Inc(StrInd);
    End;

  For i:=0 To MasInd-2 Do
    If (StrMas[i]<>StrMas[MasInd-1]) Then
      WriteLn(StrMas[i]);

  WriteLn('Нажми на кнопку ANY KEY!!!'); 
  Repeat Until (KeyPressed);
End. 

Сначала ввожу строку, разбиваю её на слова, отбрасывая все (в том числе и лишние) пробелы циклом, затем в цикле набираю строку (слово), потом меняю местами первый и последний символ слова и присваиваю элементу массива (если, конечно, есть что присваивать), а затем вывожу требуемые слова.