Завдання
Дано
деякий текст. Відредагувати текст таким чином, щоб після кожного розділового
знака стояв хоча б один пробіл, а всі перші слова в реченнях починалися з
великої літери.
Розв’язання
У розділі Uses додайте
модуль StrUtils для роботи з функціями ReplaceText та PosEx
var m:array[1..100] of string;
procedure TForm1.Button1Click(Sender: TObject);
var L,p,n:integer;
s:string;
c:char;
begin
s:=Memo1.Text;
//Замінюємо всі комбінації "." на ". "
s:=ReplaceText(s,'.','. ');
//Замінюємо всі комбінації "," на ", "
s:=ReplaceText(s,',',', ');
//Замінюємо всі парні пробіли на одиночні
while pos(' ',s)<>0 do begin
p:= pos(' ',s);
delete(s,p,1);
end;
//Обрізаємо зайві пробіли спочатку та в кінці
s:=Trim(s);
L:=length(s);
//Замінюємо першу літеру в тексті на велику
c:=s[1];
if (c>='а') and (c<='я') then begin
c:=chr(ord(c)-32)
end;
s[1]:=c;
//Шукаємо букви після '. ' та при потребі замінюємо їх на великі
n:=1;
while posex('. ',s,n)<>0 do begin
p:=posex('. ',s,n);
c:=s[p+2];
if (c>='а') and (c<='я') then begin
c:=chr(ord(c)-32)
end;
s[p+2]:=c;
n:=p+1;
end;
Memo2.Text:=s;
end;
Немає коментарів:
Дописати коментар