我知道POS()可以定位字串在主串中的第1次出现的位置,
但第二次,第三次出现的位置怎么定位呢,有直接的函数吗?

解决方案 »

  1.   

    //下面函数可以实现你的目的,substr为子串,str为源串,n为第几次出现
    function PosN(substr,str:string;n:integer):integer;
    var
    i,j,d:integer;
    tempstr:string;
    begin
    d:=0;
    result:=0;
    for i:=1 to length(str)-length(substr)+1 do
       begin
       tempstr:='';
       for j:=i to i+length(substr)-1 do
          tempstr:=tempstr+str[j];
       if tempstr=substr then
          d:=d+1;
       if d=n then
          begin
          result:=i;
          break;
          end;
       end;
    end;
      

  2.   

    StrUtils.pas单元有这个函数,Delphi7以后才有。
    function PosEx(const SubStr, S: string; Offset: Integer = 1): Integer;
      

  3.   

    pos获得第一个位置
    copy第一个位置到最后的子串继续pos设置一个count统计
      

  4.   

    没看到有这样的函数都是pos,copy组合一起来用!