Данная функция преобразовать строку таким образом, что каждое слово начинается с большой буквы.
Function UpLet(s:string):string;
var
s_out:string;
begin
s_out:='';
while Pos(' ',s)<>0 do
begin
begin
s_out:=s_out+AnsiUpperCase(s[1])+Copy(s,2,Pos(' ',s)-1);
Delete(s,1,Pos(' ',s));
end;
end;
if Pos(' ',s)<>Length(s) then s_out:=s_out+AnsiUpperCase(s[1])+Copy(s,2,Length(s));
Result:=s_out;
end;
Сейчас данная функция обрабатывает текст такого плана
test test test (test test)
Вот так:
Test Test Test (test Test) - то есть слово (test в скобках не
c большой буквы
Как исправить эту функцию что бы скобки игнорировались ?
То есть, результат на выходе: Test Test Test (Test Test)
Ответ
Игнорируются все "небуквы". Но между словами кроме "небукв" обязательно должны быть пробелы.
function UpLet(s:s tring): string;
var
hadSpace: boolean;
begin
hadSpace := true;
for i := 1 to Length(s) do
begin
if hadSpace and ((s[i] in ['a'..'z']) or (s[i] in ['A'..'Z'])) then
begin
s[i] := AnsiUpperCase(s[i])[1];
hadSpace := false;
end;
if s[i] = ' ' then
begin
hadSpace := true;
end;
end;
result := s;
end;
Комментариев нет:
Отправить комментарий