![]() |
![]() ![]() ![]() ![]() |
|
Поиск N-ого вхождения подстроки в строкуDelphi , Синтаксис , Текст и Строки
Автор: Panov
{ **** UBPFD *********** by delphibase.endimus.com ****
>>
Зависимости: SysUtils
Автор: panov, panov@hotbox.ru, Екатеринбург
Copyright: panov
Дата: 19 апреля 2002 г.
***************************************************** }
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;
Пример использования: var StrF, StrSrc: string; n: Integer; begin ... StrF := 'стр'; StrSrc := 'Поиск подстроки в строке'; n := SearchString(StrF, StrSrc, 2); //n будет равна 19 end; Программа на Delphi для поиска N-го вхождения подстроки в строке. Функции и переменные
Код Функция
Функция
Пример использования Пример кода создает две строки ( В целом, эта программа эффективно ищет N-е вхождение подстроки в строке с помощью рекурсии. В статье описана функция SearchString на языке Delphi, которая ищет N-ое вхождение подстроки FindStr в строку SourceString. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||