Удалить все слова начинающиеся с большой буквы при этом не перезаписывая в блокнот

Дана строка (Можно Edit или Memo) в которой необходимо удалить все слова начинающиеся с большой буквы при этом не перезаписывая в блокнот

code: #delphi
procedure TForm1.Button1Click(Sender: TObject);
var s,s1:string;
    i:integer;
begin
s:=Edit1.Text;
i:=2;s:=' '+s; //добавим пробел в начало и начнем со второго символа
while i<=length(s) do //пока не конец строки
   begin
     if not(s[i] in ['A'..'Z','А'..'Я','Ё'])and(s[i-1]=' ')then  //если буква не заглавная и перед ней пробел, то
       begin
         while (s[i]<>' ')and(i<=length(s))do //пока не следующий пробел или конец строки
           begin
             s1:=s1+s[i]; //переписываем буковку в новую строку
             inc(i); // переходим к следующей буковке
           end;
         s1:=s1+' ';//добавляем пробел
       end;
     inc(i); //переходим к следующему слову
   end;
Edit1.Text:=s1;//выводим исправленное предложение
end;

автор: Puporev

Поделиться:

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