首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

dephi中有没有能找出字符在某字符串中出现第N次的位置的函数?解决思路

2012-04-08 
dephi中有没有能找出字符在某字符串中出现第N次的位置的函数?如题[解决办法]//返回字符c从右第n次出现的位

dephi中有没有能找出字符在某字符串中出现第N次的位置的函数?
如题

[解决办法]
//返回字符c从右第n次出现的位置,如果n大于出现的次数将返回-1,如果没找到将返回0
function TCalcular.RightNPos(s:string;c:char;n:integer):integer;
var
i,p:integer;
begin
result:=0;
p:=0;
if n>getcharnum(c,s) then begin result:=-1;exit; end;
for i:=length(s) downto 1 do
begin
if s[i]=c then
BEGIN
p:=p+1;
//showmessage(inttostr(p));
if p=n then
begin
result:=I;
break;
end;
END;
end;
end;

//得到某个字符第几次出现的位置,n为次数,c为字符,s为要查找的字符串
function GetOneICharPotion(n:integer;c:char;s:string):integer;
var
p,i:integer;
begin
result:=0;
p:=0;
for i:=1 to length(s) do
begin
if s[i]=c then
p:=p+1;
if p=n then
begin
result:=i;
break;
end;
end;
end;

热点排行