RSS订阅 | 匿名投稿
您的位置:网站首页 > 字符串 > 正文

delphi 查询某个字符在字符串出现的位置,支持查找次数

作者:admin 来源: 日期:2018/2/15 18:09:47 人气: 标签:

function SearchString(const FindStr, SourceString: string; Num: Integer):
Integer;
var
FirstSym: PChar; //Ссылка на первый символ
function MyPos(const FindStr, SourceString: PChar; Num: Integer): PChar;
begin
   Result := AnsiStrPos(SourceString, FindStr);
     //Поиск вхождения подстроки в строку
   if (Result = nil) then
     Exit; //Подстрока не найдена
   Inc(Result); //Смещаем указатель на следующий символ
   if Num = 1 then
     Exit; //Если нужно первое вхождение - заканчиваем
   if num > 1 then
     Result := MyPos(FindStr, Result, num - 1);
   //Рекурсивный поиск следующего вхождения
end;
begin
FirstSym := PChar(SourceString);
//Присваиваем адрес первого символа исходной строки
Result := MyPos(PChar(FindStr), PChar(SourceString), Num) - FirstSym;
//Номер позиции в строке
if Result < 0 then
   Result := 0; //Возвращаем номер позиции
end;



procedure TForm1.Button1Click(Sender: TObject);
var
StrF, StrSrc: string;
n: Integer;
begin
StrF := '国';
StrSrc := '中国华人民共和国万岁';
n := SearchString(StrF, StrSrc,1);   //结果2
memo1.Lines.Add(inttostr(n));
end;


procedure TForm1.Button2Click(Sender: TObject);
var
StrF, StrSrc: string;
n: Integer;
begin
StrF := '国';
StrSrc := '中国华人民共和国万岁';
n := SearchString(StrF, StrSrc,2);   //结果8
memo1.Lines.Add(inttostr(n));
end;

读完这篇文章后,您心情如何?
0
0
0
0
0
0
0
0
本文网址:
下一篇:没有资料