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);' –