Skomplikowane operacje na string

0

Głupie pytanie, lae przez egzamin nie potrafie wymyśleć:

  1. Mam string 'actFileCloseAllOther' i potrzebuje z niego zrobić 'FileCloseAllOther', czyli ogólni usunąć znaki "LowerCase" przed wystąpieniem pierwszego znaku "UpperCase".

  2. Podobne do 1 ale z 'actFileCloseAllOther' trza zrobić 'File Close All Other', czyli nie dość, że usunąć lowercase przed pierwszym uppercase, to na dodatek przed każdym napotkanym uppercase wstawic spacje [u]oprócz pierwszego[/u]

0

niemozna by sprawdzac ifem ? jezeli nie to napisz sobie funckje sprawdzajaca czy char jest mala litera (function czymala(c:char):boolean) jezeli mala to result:=true jezeli nie to result:=false; cos takiego....

przemyslenie:

function czymala(c:Char):boolean;
var new,old:char;
begin
old:=c;
new:=lowercase(string(old))[1];
result:=new=old;
end;

ale co do funckji zamieniajacej to niebardzo:/

0

var
s: string;
i: Integer;
begin
s := 'actFileCloseAllOther';
for i := 1 to Length(s) do
if s[i] in ['A'..'Z'] then
Break;
Delete(s, 1, i-1);

var
s1, s2: string;
i: Integer;
begin
s1 := 'actFileCloseAllOther';
for i := 1 to Length(s1) do
if s1[i] in ['A'..'Z'] then
Break;
Delete(s1, 1, i-1);
s2 := '';
for i := 1 to Length(s1) do
if s1[i] in ['A'..'Z'] then
begin
s2 := s2 + ' ' + s1[i];
end;
s1 := s2;

Nie są to optymalne rozwiązania, ale...

1 użytkowników online, w tym zalogowanych: 0, gości: 1