社区
C++ Builder
帖子详情
怎么定位一个子串在一个字符串里最后一次出现的位置
ozil1236
2012-05-28 09:47:01
for example
String str="deichengcheLachedd";
String substr="che";
如何定位substr在str里最后一次出现的位置,本例为14 ??
...全文
316
4
打赏
收藏
怎么定位一个子串在一个字符串里最后一次出现的位置
for example String str="deichengcheLachedd"; String substr="che"; 如何定位substr在str里最后一次出现的位置,本例为14 ??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
我不懂电脑
2012-05-29
打赏
举报
回复
已经有处理办法了。
oldtab
2012-05-29
打赏
举报
回复
还是"笨"办法好。这么简单的事,自己做也要不了一点点时间。用rfind,还有个支持问题。
艳琦罗生
2012-05-29
打赏
举报
回复
转string 有rfind函数。。。
dataxdata
2012-05-28
打赏
举报
回复
笨办法是这样的:
char *LastOccurence(char *szStr, char *szSub) {
int nSrcLen = strlen(szSrc);
int nSubZLen = strlen(szSub);
char *pch = szStr + (nSrcLen - nSubLen);
while ( pch > szStr ) {
if ( strncmp(pch, szSub, nSubLen) == 0 )
return pch;
pch--;
}
return NULL;
}
将s所指
字符串
中
最后
一次
出现
的与t1所指
字符串
相同的
子串
替换为t2所指
字符串
题目 将s所指
字符串
中
最后
一次
出现
的与t1所指
字符串
相同的
子串
替换为t2所指
字符串
。分析: 1.s是源
字符串
2.t1为指定
字符串
,需要在s中找一致的
字符串
,要找到
最后
一次
完全匹配的
字符串
3.t2是所要替换的
字符串
代码如下:/* 将s所指
字符串
中
最后
一次
出现
的与t1所指
字符串
相同的
子串
替换为t2所指
字符串
。 */ #include
#include
常见操作String的方法(截取
子串
,分割
字符串
,
字符串
的替换)
常见操作String的方法(截取
子串
,分割
字符串
,
字符串
的替换) 截取子
字符串
substring() substring()方法有两种重载形式,一种是从指
定位
置截取到
字符串
结尾,另一种是截取指定范围的内容。下面对这两种方法分别进行介绍。 1.substring(int beginIndex) 此形式用于截取从索引
位置
开始到结尾处的
字符串
部分。调用时,括号中是需要提取
字符串
的开始
位置
,方法的返回值是要提取的
字符串
。例如: String str = "我爱 Java 编程"; String result = s
查找
字符串
中的
子串
-C版
问题:用C语言实现传入两个
字符串
,找到
子串
在父串的第
一次
出现
的
位置
。分析:在C语言中没有
字符串
这一基本类型,
字符串
是用字符数组实现的。所以要想找到
子串
的
位置
,应该是两个
字符串
中对每
一个
字符进行依次比较,直到
子串
在父串中的每个字符都一一对应。逻辑:因为要从父串的每
一个
字符与
子串
的每
一个
字符相比较,最外层用
一个
for循环,用于控制最大比较次数,
里
层用
一个
for循环控制
子串
的每
一个
字符与父串一一比较,相同就直接跳过,不同就直接跳出,二层的循环结束后,判断
最后
比较后的长度是否与
子串
相同,相同就表示都一一对应然后返回
要检查
一个
字符串
是否可以由它的
一个
子串
重复多次构成
例如,对于
字符串
“abcabcabc”,拼接后的
字符串
是 “abcabcabcabcabcabc”,去掉第
一个
和
最后
一个
字符后的
子串
是 “bcabcabcabcabcab”,这个
子串
包含了原始
字符串
“abcabcabc”,所以原始
字符串
“abcabcabc” 可以由它的
一个
子串
“abc” 重复多次构成。这个函数首先将
字符串
s 与自身拼接,然后从第二个字符开始到倒数第二个字符结束的
子串
中查找原始
字符串
s。如果找到了,那么说明原始
字符串
s 可以由它的
一个
子串
重复多次构成。
两个
字符串
查找公共
子串
查找两个
字符串
的最大公共
子串
方法一:LCS 步骤: 1、根据两个
字符串
长度构建
一个
同等长度的二维数组(假设
字符串
1作为行,
字符串
2作为列) 2、遍历数据行列,比较两个
字符串
在数组对应行列节点
位置
的字符是否相等,如果相等将数组这个
位置
的值设为左上角元素值+1(arry[i][j]+1),(第一行或第一列的元素需要置为1),这个数字代表了公共
字符串
的长度。 3、遍历完成后将
最后
的两个字符相等的
位置
的数字大小记录下来作为公共串长度,将
最后
一次
相等时行(列)下标记录下来,作为
字符串
1子序列的起始
位置
(
C++ Builder
13,870
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章