Тема: Робота з рядками

проблема з рядками, завдання: кожне слово розпочати великою літерою.

procedure TForm1.Button3Click(Sender: TObject);
 var s:string;
 i,k,n:integer;
begin
 s:=memo1.Text;
i:=1;
n:=length(s);
while i<=n do begin
  if s[1]=s[i] then s[i]:= UpCase(s[i]);
  if s[i]=(' ') then
  begin
    if i+1<=n then s[i+1]:=UpCase(s[i+1]);
    n:=n+1;
  end;
  i:=i+1;
end;
 memo2.Text:=s;
 memo2.Font.Name:='Times New Roman';
 memo2.Font.Size:=15;
 memo2.Font.Color:=clBlue;
end;

проблема полягає в тому, що не збільшує слова які стоять перші після абзацу.

Post's attachments

Снимок.JPG 43.88 kb, 218 downloads since 2015-03-01 

2

Re: Робота з рядками

Видно, для абзацу використовують символ табуляції, а не пробіл. Перевіряйте ще й на нього.

Подякували: lichmanmaksim1

3

Re: Робота з рядками

А ще треба перевіряти на символ наступного рядка.

Подякували: lichmanmaksim1

4 Востаннє редагувалося P.Y. (01.03.2015 19:32:55)

Re: Робота з рядками

10-й рядок:
[code=pascal]  if s[i] in[' ', #9, #13, #10] then[/code]

Подякували: lichmanmaksim1