比如计算'abc defj abc abc def'里有几个'abc'。

解决方案 »

  1.   

    信手写的一个,测试可以通过,你看看吧,希望能够对你有用,用了两个Edit(Edit1,Edit2),一个Button(Button1),在Edit1中存放大字符串, Edit2中存放子字符串,
    执行效率不高,不好意思procedure TForm1.Button1Click(Sender: TObject);
    var
      Counter: integer;
      i: integer;
    begin
      Counter := 0;
      for i:=1 to Length(Edit1.Text) do
      begin
        if Pos(Edit2.Text, Edit1.Text)>0 then
        begin
          Counter := Counter + 1;
          Edit1.Text := Copy(Edit1.Text, Pos(Edit2.Text, Edit1.Text) + Length(Edit2.Text), Length(Edit1.Text)-Pos(Edit2.Text, Edit1.Text));
        end;
      end;
      ShowMessage(IntToStr(Counter));
    end;
      

  2.   

    function SubStrCount(SubStr,MainStr:String):Integer;
      var
        StrPos,Len:Integer;
      begin
        Result:=0;
        Len:=Length(SubStr);
        StrPos:=Pos(SubStr,MainStr);
        while StrPos>0 do
        begin
          Delete(MainStr,StrPos,Len);
          Inc(Result);
          StrPos:=Pos(SubStr,MainStr);
        end;
      end;
    eg:
      ShowMessage(IntToStr('abc','abc defj abc abc def'));
      

  3.   

    错了:
    howMessage(IntToStr(SubStrCount('abc','abc defj abc abc def')));
      

  4.   

    靠!看来今我是不是有毛病了??
    function SubStrCount(SubStr,MainStr:String):Integer;
      var
        StrPos,Len:Integer;
      begin
        Result:=0;
        Len:=Length(SubStr);
        StrPos:=Pos(SubStr,MainStr);
        while StrPos>0 do
        begin
          Delete(MainStr,StrPos,Len);
          Inc(Result);
          StrPos:=Pos(SubStr,MainStr);
        end;
      end;
    eg:
      ShowMessage(IntToStr(SubStrCount('a ','a ddaa ')));
      

  5.   

    blazingfire(烈焰) : 你最后写的应该没有问题呀:) 怎么那么说自己.....:),不好,不好...:)