function FindWordInString(S:string): TStringList; var i:integer; S2:string; begin Result := TStringList.Create; For i:=1 to Length(S) do begin if s[i]<>' ' then S2:=s2+s[i] else if s2<>'' then begin Result.Add(S2); S2:=''; end; end; if s2<>'' then Result.Add(S2); end;
Теперь о том, как все это работает. Мы перебегаем посимвольно всю строку S в цикле и если проверяемый символ не пробел, то мы его добавляем к строке S2, иначе (если пробел) если в S2 уже что-то накопилось (есть какоето слово), то добавляем в StringList. На случай если пользователь введет строку со словами разделенными не одним пробелом, то без условия if s2<>'' then программа добавит помимо слов еще и много пробелов. Ну и после выхода из цикла в переменной S2 может храниться еще одно слово. Мы его и добавляем.
Пример использования: procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items := FindWordInString(Edit1.Text); end;
|