@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?'.