C++ 返回特定子字符串';给定字符串的模式是什么?

C++ 返回特定子字符串';给定字符串的模式是什么?,c++,arrays,c,string,algorithm,C++,Arrays,C,String,Algorithm,我想实现一个C/C++函数,它的输入是一个字符数组,如下所示: char字符串[]=“abccccfffccccc” 然后搜索特定的字符串模式,然后根据我搜索的模式的最后一个索引+6个字符返回一个字符数组(字符串) 例如,假设我想搜索字符串模式“ab”,因此如果在我的输入中找到了搜索的模式,则返回输入的子字符串,该子字符串从搜索模式的最后一个索引开始,在(索引+6)结束,因此在这种情况下,返回的子字符串将是“ccccff”,因为“ab”的最后一个索引位于索引=1,因此返回的子字符串将从索引2开

我想实现一个C/C++函数,它的输入是一个字符数组,如下所示:

char字符串[]=“abccccfffccccc”
然后搜索特定的字符串模式,然后根据我搜索的模式的最后一个索引+6个字符返回一个字符数组(字符串)

例如,假设我想搜索字符串模式
“ab”
,因此如果在我的输入中找到了搜索的模式,则返回输入的子字符串,该子字符串从搜索模式的最后一个索引开始,在(索引+6)结束,因此在这种情况下,返回的子字符串将是
“ccccff”
,因为
“ab”的最后一个索引
位于
索引=1
,因此返回的子字符串将从索引2开始(在索引2处为1+1=>的下一个索引),子字符串的结尾将在索引1+6=7处结束(从索引1移动6个字符)

我在代码中所做的是:

#包括
使用名称空间std;
int main(){
string str1=“abccccfffcccccc”;//此示例仅用于确定我的函数是否为每个特定模式外观提供第一个索引
字符串str2=“ab”;%我正在给定字符串str1中搜索的模式。
int pos=0;
整数指数;
而((索引=strstr(str1,str2))!=NULL){
cout
strstr()
返回指向找到的子字符串的
char*
指针,而不是子字符串的索引。要获取索引,必须使用指针算法,例如:

char*ptr=strstrstr(str1,str2);
如果(ptr){
指数=ptr-str1;
...
}
<>但是,C++中不应该使用<代码> STRSTRESE()/Cuff>。<代码>:String < /Cord>有自己的搜索子串的方法,它返回一个索引。 因此,请尝试类似以下内容:

#包括
#包括
int main()
{
std::string str1=“abccccfffccccccc”;
std::string str2=“ab”;
std::string::size\u类型索引,pos=0;
while((index=str1.find(str2,pos))!=std::string::npos)
{

std::cout so使用
000ab111ab222
搜索
ab
你想得到
['000ab','111ab']
?@Berto99根据OP的描述和尝试的代码,它需要是
['111ab2']
,或者可能是
['111ab2','222']