码迷,mamicode.com
首页 > Windows程序 > 详细

自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的

时间:2015-12-03 00:36:38      阅读:230      评论:0      收藏:0      [点我收藏+]

标签:

已经好几次了,没有这个函数还是感觉很不方便,所以自己写了一个:

function LastPos(strFind :string; ch: Char): integer;
var
    i, n: integer;
begin
    Result := -1;
    if strFind=‘‘ then
    begin
        Exit;
    end;
    for i:=0 to Length(strFind) do
    begin
        if strFind[i]=ch then
            Result := i;
    end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  s1: String;
begin
  s1 := abc;
  ShowMessage(s1[1]);
  ShowMessage(IntToStr(Length(/myaccount/save1/)));
  ShowMessage(IntToStr(LastPos(/myaccount/save1/, /)));
end;

当然,这里没有考虑效率和Unicode等问题,反正对D7比较好用。

另一个算法,看看别人怎么写的吧(倒序是非正常思路):

function LastPos(const S: string; C: Char): Integer;
var
    i: Integer;
begin
    i := Length(S);
    while (i > 0) and (S[i] <> C) do
        Dec(i);
    Result := i;
end;

 

自写的LastPos,寻找字符串里的最后一个字符,RTL里没有提供这个函数——Delphi的String下标是从1开始的

标签:

原文地址:http://www.cnblogs.com/findumars/p/5014781.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!