Delphi中有没有判断一个子字符串在某一字符串中出现次数的函数?(10分)

  • 主题发起人 主题发起人 tianyusharp
  • 开始时间 开始时间
T

tianyusharp

Unregistered / Unconfirmed
GUEST, unregistred user!
Delphi中有没有判断一个子字符串在某一字符串中出现次数的函数?
 
我不知道,但可以用pos函数自己写一个。 :)
 
好象需要自己写一个。
 
自己写一个也不会比已有的差。
 
function TForm1.StrPostime(Str:string;P:string):integer;
var i,n:integer;
begin
n:=0;
for i:=1 to length(str) do
begin
if copy(str,i,length(p))=P then n:=n+1;
end;
StrPostime:=n;
end;
 
楼上的效率不太高吧,用pos和copy结合应该速度会快些
 
这样写应该会很慢吧 ,有没有更快的
 
function findCount(const S, sFind: string): Integer;
var
i: Integer;
begin
i := 1;
Result := 0;
while i <= length(s)-length(sFind)+1 do
begin
if comparemem(@(s), @(sFind[1]), length(sFind)) then
begin
Inc(Result);
Inc(i, length(sFind));
end
else if byte(S)>128 then
Inc(i, 2)
else Inc(i);
end;
end;

支持中文和英文
 
xj2003比我的快4倍
我以为会快很多,也不过快4倍而已
 
都值得我学习
 
后退
顶部