使用标准库里面的next_permutation()函数,这个函数是生成所有比当前的字符串大的字符串,所以最开始经过sort()排序之后,要先打印出当前的字符串。
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
const int MAX = 15;
char s[MAX];
int main()
{
scanf("%s", s);
int lenth = strlen(s);
std::sort(s, s + lenth);
printf("%s\n", s);
while (std::next_permutation(s, s + lenth))
{
printf("%s\n",s);
}
return 0;
}