Upper the first letter of each word

Posted in Algorithms

If we will agree, that the word is a characters set between the spaces then you can try this:

procedure TForm1.Button1Click(Sender: TObject);
var
  i: Integer;
  Str: string;
begin
  Label2.Caption:='';
  Str:=' '+Edit1.Text;
  i:=1;
  repeat
    if Str[i]<>' ' then
      Label2.Caption:=Label2.Caption+Str[i];
    if Str[i]=' ' then
    begin
      if (Str[i+1]<>' ') then
      begin
        Label2.Caption:=Label2.Caption+Str[i]+AnsiUpperCase(Str[i+1]);
        Inc(i);
      end
      else
        Label2.Caption:=Label2.Caption+Str[i];
    end;
    Inc(i);
  until i>Length(Str)+1;
  Str:=Label2.Caption;
  Delete(Str, 1, 1);
  Label2.Caption:=Str;
end;