比如abcabc,从最后找第一个b的位置

解决方案 »

  1.   

    function RightPosEx(const Substr,S: string): Integer; 
    var 
     iPos: Integer; 
     TmpStr:string; 
     i,j,len: Integer; 
     PCharS,PCharSub:PChar; 
    begin 
     PCharS:=PChar(s); //将字符串转化为PChar格式 
     PCharSub:=PChar(Substr); 
     Result:=0; 
     len:=length(Substr); 
     for i:=0 to length(S)-1 do 
     begin 
      for j:=0 to len-1 do 
      begin 
       if PCharS[i+j]<>PCharSub[j] then break; 
      end; 
      if j=len then Result:=i+1; 
    end;
      

  2.   

    简单一点的是这个:function RightPos(const Substr,S: string): Integer; 
    var 
     iPos: Integer; 
     TmpStr:string; 
    begin 
     TmpStr:=s; 
     iPos := Pos(Substr,TmpStr); Result:=0; 
     //查找Substr第一次出现位置 
     while iPos<>0 do 
     begin 
      Delete(TmpStr,1,iPos+length(Substr)-1); 
      //删除已经查找过的字符 
      Result:=Result+iPos; 
      iPos := Pos(Substr,TmpStr); //查找Substr出现位置 
      if iPos=0 then break; 
      Result:=Result+length(Substr)-1; 
     end; 
    end;
      

  3.   

    对字符串位置交换下,前后倒一下
    pos(substring,string);返回integer型,位置