substr(pos,n):表示从下标为pos处,取连续n个字符的子串!!!
(我原先以为两个参数是起始下标和终点下标,答案怎么都不对)
#include<iostream>
#include<cstring>
#include<set>
using namespace std;
int main(){
string s;
set<string> se;
cin>>s;
int n = s.length();
for(int i=0;i<n;i++){
for(int j=1;j<n-i+1;j++){
// cout<<i<<" "<<j<<" ";
string ss = s.substr(i,j);
// cout<<ss<<endl;
se.insert(ss);
}
}
return 0;
}
按子串长度依次取出
for(int i=1;i<=n;i++){ //子串长度为1...n
for(int j=0;j<=n-i;j++){
string ss = s.substr(j,i);
se.insert(ss);
cout<<ss<<endl;
}
}