Вниз
Скачать: CL | DM;

Как найти подстроку в строке???   Найти похожие ветки 

 
Netizen ©   (2002-08-22 23:00) [0]

Вобщем такой прикол - допустим есть у меня строка вводимая юзером (Edit1)"ффропропффккерофф" и он же вводит подстроку (Edit2) например фф и в Edit3 должен вывестись результат количества подстроки в строке - тоесть в даном случае 3!


 
Юрий Зотов ©   (2002-08-22 23:46) [1]

Что-то типа этого (писал "на лету", не проверял, проверьте сами).

function SubCount(Src, Sub: string): integer;
begin
Result := Pos(Sub, Src);
if Result > 0 then
begin
Delete(Src, Result, Length(Sub));
Result := 1 + SubCount(Src, Sub)
end
end;


 
Ученик ©   (2002-08-22 23:48) [2]

>Netizen © (22.08.02 23:00)
А ффф - это 2 фф или как ?


 
Юрий Зотов ©   (2002-08-22 23:51) [3]

Дополнение.

Вообще-то, задача поставлена некорректно. Например, сколько раз входит подстрока "aa" в строку "aaaа"?

Варианты ответов:
- 2 раза;
- 3 раза.

И оба правильные. Смотря, как считать.




 
Anatoly Podgoretsky ©   (2002-08-22 23:52) [4]

Если две то Delete(Src, Result, 1); только лучше уйти от рекурсии, а то на длинных строках будет проблема со стеком


 
Ученик ©   (2002-08-23 00:01) [5]

>Netizen © (22.08.02 23:00)

function SubCount(const S, Sub : string) : Integer;
var
i, l : Integer;
begin
Result := 0;
l := Length(Sub);
for i := 1 to Length(S) - l + 1 do
if Copy(s, i, l) = Sub then
Inc(Result)
end;


 
Anatoly Podgoretsky ©   (2002-08-23 00:12) [6]

Лучше использовать StrLComp или StrLIComp, что бы не проводить копирования, думаю будет значительно быстрее, хотя требуется проверка.

if StrLComp(S, Sub, l) = 0 then



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: -0.99 c
8-3529
DmitryM
2002-04-23 15:46
2002.09.02
ico в bmp


3-3284
spectrre
2002-08-12 09:35
2002.09.02
Поиск в master/detail табл. по нескольким полям сразу


4-3692
v0id
2002-06-27 19:24
2002.09.02
Защита проги от Read/WriteProcessMemory


3-3249
Zmey
2002-08-12 00:52
2002.09.02
как в MySQL вставлять дату и время с сервера?


6-3545
Lina
2002-06-24 15:42
2002.09.02
Может кто-нибудь работал с функцией NetShareAdd ?




   Наверх