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

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

    function LastPos(strFind :string; ch: Char): integer;
    var
        i, n: integer;
    begin
        Result := -1;
        if strFind='' then
        begin
            Exit;
        end;
        for i:=1 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;
  • 相关阅读:
    C语言I博客作业03
    C语言I—2019秋作业02
    C语言I博客作业04
    C语言I博客作业02
    C语言I博客作业02
    C语言I博客作业04
    C语言I博客作业02
    C语言I博客作业02
    第一周作业
    C语言I博客作业04
  • 原文地址:https://www.cnblogs.com/findumars/p/5014781.html
Copyright © 2011-2022 走看看