怎样反向查找字符串中的指定的字符串?

pcbaby23 2009-02-12 10:48:02
比如一串字符“ab3cdd3450”
我要从最后查找这串里面的第1个“3”在这串字符中的位置,结果应该是第7个才对,函数该怎么写?
...全文
705 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
binaiko 2012-03-26
  • 打赏
  • 举报
回复
不支持中文啊!
dbgchen 2012-03-23
  • 打赏
  • 举报
回复
楼上的好方法
willflyz 2009-02-13
  • 打赏
  • 举报
回复
上面是找单个字符的,改成下面就可以找字串了,

function GetCharPos(SubStr,MainStr:String):integer;
var
s1,s2: String;
i,Pos1,Pos2: Integer;
begin
Result := 0;
for i := Length(SubStr) downto 1 do
s1 := s1 + SubStr[i];
for i := Length(MainStr) downto 1 do
s2 := s2 + MainStr[i];
Pos1 := Pos(s1,s2);
Pos2 := Length(MainStr) - Pos1 - Length(s1) + 1 + 1;
Result := Pos2;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
s1,s2: String;
ipos: Integer;
begin
s1 := 'd345';
s2 := 'ab3cdd3450';
iPos := GetCharPos(s1,s2);
ShowMessage(IntToStr(iPos));
end;
willflyz 2009-02-13
  • 打赏
  • 举报
回复

function GetCharPos(SubStr,MainStr:String):integer;
var
s: String;
i,Pos1,Pos2: Integer;
begin
Result := 0;
for i := Length(MainStr) downto 1 do
s := s + MainStr[i];
Pos1 := Pos(SubStr,s);
Pos2 := Length(MainStr) - Pos1 + 1;
Result := Pos2;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
s1,s2: String;
ipos: Integer;
begin
s1 := '3';
s2 := 'ab3cdd3450';
iPos := GetCharPos(s1,s2);
ShowMessage(IntToStr(iPos));
end;
pcbaby23 2009-02-13
  • 打赏
  • 举报
回复
这个函数只能查找1个字符,我想要找一串字符就不行了啊,比如要找34呢
天鸽 2009-02-13
  • 打赏
  • 举报
回复
StrRScan(PChar('ab3cdd3450'), '3');
ks_reny 2009-02-13
  • 打赏
  • 举报
回复
學習.
ron_xin 2009-02-13
  • 打赏
  • 举报
回复
uses SysUtils.pas


Edit1.Text := StrRScan(PChar('ab3cdd3450'), '3');
ron_xin 2009-02-13
  • 打赏
  • 举报
回复
uses SysUtils.pas


Edit1.Text := StrRScan(PChar('ab3cdd3450'), '3');
mosaic 2009-02-12
  • 打赏
  • 举报
回复
楼主是要自己写这样一个函数,还是要delphi里面的函数?
要是后者,那么SysUtils里面有一个可以反向查找:function StrRScan(const Str: PChar; Chr: Char): PChar;

5,391

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧