bcb中如何获取某字符串在主串最右边出现的位置

mengyq_82 2008-10-06 10:54:44
如题
...全文
207 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingyu_2008 2008-10-06
  • 打赏
  • 举报
回复
楼主的意思是不是如下:
主串:abcdeabcabcfg
子串:abc
要找的位置为9?
Waiting4you 2008-10-06
  • 打赏
  • 举报
回复
不是太明白,楼主举例说明一下
jxw1987628 2008-10-06
  • 打赏
  • 举报
回复

using namespace std;
std::string s = "abcdeabcabcfg";
ShowMessage( s.rfind("abc") );
柯本 2008-10-06
  • 打赏
  • 举报
回复
用bcb自带的TRegexp也可以,不过如果你有boost更方便
用regexp的:
#include <regexp.h>
...
char *s="abcdeabcabcfg";
TRegexp p("abc");
int t,e,m;
t=e=m=0;
do {
e=p.find(s+m,(unsigned int *)&t,0) ;
m+=e+t;
} while (e!=-1);
m-=t+1;
ShowMessage(m); //m为位置,从1开始
nuptwzp 2008-10-06
  • 打赏
  • 举报
回复
AnsiString的LastDelimiter方法貌似可以
Waiting4you 2008-10-06
  • 打赏
  • 举报
回复
用find_end
    char szMain[] = "abcdeabcabcfg";
char szSub[] = "abc";
char *szLastSub = std::find_end(szMain, szMain+sizeof(szMain), szSub, szSub+sizeof(szSub)-1 );
ShowMessage(szLastSub - szMain);
mengyq_82 2008-10-06
  • 打赏
  • 举报
回复
是楼上的意思
Behard 2008-10-06
  • 打赏
  • 举报
回复
转化为宽字符串,使用 GetTextWidth 函数获取减去一个字符的字符串的数值

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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