反转字符串函数

function ReverseString1(const s: string): string;

var

i, len: Integer;

begin

len := Length(s);

SetLength(Result, len);

for i := len downto 1 do

begin

Result[len - i + 1] := s[i];

end;

end;

function ReverseString2(const Str: string): string;

// by Ido Kanner

var

ch: Char;

i, Size: Integer;

begin

Result := Str;

Size := Length(Result);

if (Size >= 2) then

// 2 or more chars

begin

// For 1 to middle of the string

for i := 1 to (Size div 2) do

begin

// Lets get the charecter of the current place in the string

ch := Result[i];

// Place the Current pos of the char

// with the char of it's mirror place...

Result[i] := Result[Size - (i - 1)];

// In the mirror place we will put char of the

// Original place... And we switched places !!!

Result[Size - (i - 1)] := ch;

end

end;

end;

 

function ReverseString3(S: string): string;

// by Rudy Velthuis

var

P, Q: PChar;

C: Char;

begin

Result := S;

if Length(Result) = 0 then Exit;

P := PChar(Result);

Q := P + Length(Result) - 1;

while P < Q do

begin

C := P^;

P^ := Q^;

Q^ := C;

Inc(P);

Dec(Q);

end;

end;

procedure ReverseString4(var S: string);

// by Rudy Velthuis

var

P, Q: PChar;

C: Char;

begin

if Length(S) = 0 then Exit;

P := PChar(S);

Q := P + Length(S) - 1;

while P < Q do

begin

C := P^;

P^ := Q^;

Q^ := C;

Inc(P);

Dec(Q);

end;

end;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值