字符串查找问题(5分)

  • 主题发起人 主题发起人 xli
  • 开始时间 开始时间
X

xli

Unregistered / Unconfirmed
GUEST, unregistred user!
有很长一个字符串,存放在一个字符串变量str1里,怎样在str1里找到字符abc呢?
注意因为可能会有很多abc,怎样把每个abc分别保存在不同的字符串变量str2,str3,str4……里呢?
请给出主要部分的源代码。谢谢!
只有5分了,不好意思。
 
这是我的增强型Pos
function PosEx(SubStr, S: string;
StartIndex: Integer = 1;
CaseSensitive: boolean = False): Integer;
var
I,J,N1,N2: Integer;
begin
result := 0;
N1 := Length(SubStr);
N2 := Length(S);
if StartIndex < 1 then
StartIndex := 1;
if(SubStr = '')or(S = '')or((N1+ StartIndex- 1) > N2) then
exit;
if Not CaseSensitive then
begin
SubStr := UpperCase(SubStr);
S := UpperCase(S);
end;

for I := StartIndex to N2do
begin
for J := 1 to N1do
if SubStr[J] <> S[I + J -1] then
break;
if J > N1 then
break;
end;
if I <= N2 then
result := I;
end;
 
procedure CountSubStr(const SubStr, Source: string;
out StrList: TStringList);
// 注意,必须加const或者var关键字
var
i, n, len1, len2: Integer;
begin
StrList.Clear;
i := 1;
len1 := Length(SubStr);
len2 := Length(Source)-len1+1;
while (i <=len2)do
begin
n := pos(SubStr, string(@Source));

if n > 0 then
begin
StrList.Add(SubStr);
inc(i, n+len1-1);
end
else
break;
end;
end;
返回的结果存在一个TStringList中
 
多人接受答案了。
 
后退
顶部