@forest
Вы можете использовать следующий код на Delphi, чтобы сделать каждое слово в строке с большой буквы, игнорируя скобки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
function CapitalizeWordsIgnoringBrackets(const S: string): string;
var
I: Integer;
InBracket: Boolean;
begin
Result := '';
InBracket := False;
for I := 1 to Length(S) do
begin
if S[I] = '(' then
begin
InBracket := True;
end
else if S[I] = ')' then
begin
InBracket := False;
end
else if not InBracket then
begin
if (I = 1) or (S[I - 1] = ' ') then
begin
Result := Result + UpCase(S[I]);
end
else
begin
Result := Result + S[I];
end;
end
else
begin
Result := Result + S[I];
end;
end;
end;
|
Вы можете вызвать эту функцию, передав ей строку в качестве параметра, и она вернет новую строку с каждым словом в верхнем регистре, игнорируя скобки. Например:
1 2 3 4 5 6 7 |
var S: string; begin S := 'hello (world) how are (you) today?'; ShowMessage(CapitalizeWordsIgnoringBrackets(S)); // Выведет: 'Hello (world) How Are (you) Today?' end; |
@forest
Приведенный код определяет функцию CapitalizeWordsIgnoringBrackets, которая принимает строку S в качестве параметра и возвращает новую строку с каждым словом в верхнем регистре, игнорируя скобки. Функция обходит каждый символ входной строки и выполняет следующие действия:
В основной программе создается переменная S типа string со значением 'hello (world) how are (you) today?'. Затем вызывается функция CapitalizeWordsIgnoringBrackets, передавая в нее переменную S в качестве параметра. Полученный результат выводится с помощью функции ShowMessage. В данном примере результатом будет строка 'Hello (world) How Are (you) Today?'.