Перевернуть каждое слово, сохранив неизменным их порядок в строке - Pascal

Формулировка задачи:

Рано строку из слов и пробелов. Перевернуть каждое слово, сохранив неизменным их порядок в строке.

Код к задаче: «Перевернуть каждое слово, сохранив неизменным их порядок в строке - Pascal»

textual
var s:string;
    i,k,len:integer;
    c:char;
begin
  writeln('Введите строку из слов, разделенных пробелами');
  readln(s);
  i:=1;
  
  while i<length(s) do // идем по строке
    if (s[i]<>' ')and((i = 1) or (s[i-1]=' ')) then //если не пробел, а перед ним пробел (или начало строки), новое слово
    begin
      len := 0;
      while(i + len <= length(s))and(s[i + len]<>' ') do inc(len); //найдем его длину
      for k := 1 to len div 2 do // поменяем символы прямо в исходной строке
      begin
        c := s[i + k - 1];
        s[i + k - 1] := s[i + len - k];
        s[i + len - k] := c;  
      end;
      i := i + len;
    end
    else i:=i+1; //пропускаем пробелы
    
  write(s);
end.

13   голосов, оценка 4.154 из 5


СОХРАНИТЬ ССЫЛКУ