0
我试图生成所有子串,并将其存储在动态分配的字符串数组,如下所示:生成子串
cin>>N;
string str;
cin>>str;
ll m=N*(N+1)/2;
string *sub = new string[m];
int k=0;
for(int i=1,k=0; i<=N; i++,k++)
{
for(int j=0; j+i<=N; j++,k++)
{
sub[k]=str.substr(j,i);
cout<<sub[k]<<' ';
}
}
但产生所有串高达大小后的下面的代码给出错误3
但当而不是存储在字符串我打印所有的子字符串代码提供所需的输出。(按下面的代码)
cin>>N;
string str;
cin>>str;
ll m=N*(N+1)/2;
string *sub = new string[m];
int k=0;
for(int i=1,k=0; i<=N; i++,k++)
{
for(int j=0; j+i<=N; j++,k++)
{
cout<<str.substr(j,i);
}
}
请帮助?
请避免新的std :: string和查询的std :: string :: SUBSTR –
'字符串*分=新的字符串[M]。 '=>'std :: vector sub(m);' –