procedure reverse begin read(ch); if( ch <> '') then begin reverse; write(ch); end; end;
procedure TForm1.Button1Click(Sender: TObject); var iLen, i: integer; s:string; c:char; begin s := 'hello'; iLen := Length(s); for i:=1 to (iLen div 2) do begin c := s[i]; s[i] := s[iLen - i + 1]; s[iLen - i + 1] := c; end; ShowMessage(s); end;
procedure reverse begin read(ch); if( ch <> '') then begin reverse; write(ch); end; end;
function ReverseString(s: string): string; var i: integer; s2: string; begin s2 := ''; for i := 1 to Length(s) do begin s2 := s[i] + s2; end; Result := s2; end;
反转中文字符串的方法是:把string全改成widestring呵呵
procedure TForm1.Button1Click(Sender: TObject); var p,q:PChar; begin GetMem(p,20); p:='hello'; q:=StrEnd(p); While q>=p do begin Dec(q); Label1.Caption:=Label1.Caption+q^; end; FreeMem(p); end;
begin
read(ch);
if( ch <> '') then
begin
reverse;
write(ch);
end;
end;典型的递归问题
第二中方法是用函数:
reverseStringfunction reverseString(const ATExt:string; Acount :integer):string;
begin
read(ch);
if( ch <> '') then
begin
reverse;
write(ch);
end;
end;
var
iLen, i: integer;
s:string;
c:char;
begin
s := 'hello';
iLen := Length(s);
for i:=1 to (iLen div 2) do
begin
c := s[i];
s[i] := s[iLen - i + 1];
s[iLen - i + 1] := c;
end;
ShowMessage(s);
end;
begin
read(ch);
if( ch <> '') then
begin
reverse;
write(ch);
end;
end;
var
i: integer;
s2: string;
begin
s2 := '';
for i := 1 to Length(s) do
begin
s2 := s[i] + s2;
end; Result := s2;
end;
var p,q:PChar;
begin
GetMem(p,20);
p:='hello';
q:=StrEnd(p);
While q>=p do
begin
Dec(q);
Label1.Caption:=Label1.Caption+q^;
end;
FreeMem(p);
end;