首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

pos函数使用的有关问题

2012-03-07 
pos函数使用的问题pos函数可取出子串在父串中第一次出现的位置,怎样取出子串在父串中最后一次出现的位置?[

pos函数使用的问题
pos函数可取出子串在父串中第一次出现的位置,怎样取出子串在父串中最后一次出现的位置?

[解决办法]
循环pos ,每pos一次删掉开始到pos位置的字串,继续pos一直到字串结尾然后最后pos到的就是你需要的
[解决办法]
如果要查找最后一个位置,查找可以从头到尾查,效率会低些,不用DELPHI的,用POSEX就可以,查找后把查找点往后推就可以
从尾往头查,也可以
顺手给楼主写了个函数,参数VCL 中POSEX改写的, 简单测试了几个没发现问题,如果有什么问题,麻烦告诉我

Delphi(Pascal) code
function PosExFromEnd(const SubStr, S: string): Integer;var  I,X: Integer;  Len, LenSubStr: Integer;begin  I := Length(S);  LenSubStr := Length(SubStr);  Len := Length(S) - LenSubStr + 1;  while Length(S) - I <= Len do  begin    if S[I] = SubStr[LenSubStr] then    begin      X := 1;      while (X <  LenSubStr) and (S[I - X] = SubStr[LenSubStr - X]) do        Inc(X);      if (X = LenSubStr) then      begin        Result := I - LenSubStr + 1;        exit;      end;    end;    Dec(I);  end;  Result := 0;end;procedure TForm1.FormCreate(Sender: TObject);begin  ShowMessage(IntToStr(PosExFromEnd('23', '123512156234567')));end; 

热点排行