Как удалить из строки самое длинное и самое короткое слово?

code: #delphi
procedure MaxMinWord(S: String; var MaxWord, MinWord: String);
var
  Position: Integer;
  StrLen: Integer;
  W: String;
 
function FindWord: String;
begin
  Result := '';
  repeat
    Inc(Position);
    if S[Position] <> ' ' then
      Result := Result + S[Position];
   until (S[Position] = ' ');
end;
 
begin
  Position := 0;
  StrLen := Length(S);
  S := S + ' ';
  W := FindWord;
  MinWord := W;
  MaxWord := W;
  repeat
    W := FindWord;
    if W <> '' then
      if Length(W) > Length(MaxWord) then
        MaxWord := W else
      if Length(W) < Length(MinWord) then
        MinWord := W;
  until Position >= StrLen;
end;
 
 
Вызывать так например:
 
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Max, Min: String;
begin
  MaxMinWord(Edit1.Text, Max, Min);
  ShowMessage('Max: ' + Max);
  ShowMessage('Min: ' + Min);
end;

автор: THandle

Поделиться:

Похожие статьи: