#include<iostream>
#include<set>
#include<vector>
#include<string>
using namespace std;
int main()
{
int i, j, len;
string s, s_tmp;
set<string> out;
set<string> ::iterator it;
cin >> s;
len = s.length();
for (i = 1; i <= len; i++)
{
for (j = 0; j + i - 1 < len; j++)//依次插入的是a\b\c\d\ab\bc\cd\abc\bcd\abcd
{
s_tmp = s.substr(j, i);
out.insert(s_tmp);
}
for (it = out.begin(); it != out.end(); it++)
{
cout << *it << " ";
}
out.clear();//不可少,去重
}
cout << endl;
return 0;
}
结果展示:
把打印程序拿出来
#include<iostream>
#include<set>
#include<vector>
#include<string>
using namespace std;
int main()
{
int i, j, len;
string s, s_tmp;
set<string> out;
set<string> ::iterator it;
cin >> s;
len = s.length();
for (i = 1; i <= len; i++)
{
for (j = 0; j + i - 1 < len; j++)
{ s_tmp = s.substr(j, i);
out.insert(s_tmp);
}
}
for (it = out.begin(); it != out.end(); it++)
{
cout << *it << " ";
}
cout << endl;
return 0;
}
输出结果就是这样的了