C ++ next_permutation函数

时间:2015-03-18 02:14:41

标签: c++

我正在尝试编写一个程序,要求您输入一个四个字母的单词。然后你的程序将根据给定的单词显示所有可能的四个字母组合。例如,您输入了单词TEST。然后你的程序将显示以下内容: TSTE TTES等 根据我的研究和一点点谷歌搜索我创建了这个:

using namespace std;
int main()
std::string s = "";
std::sort(s.begin(), s.end());
do {
    std::cout << "Please Enter any Letter" << '\n';
    std::cin >> s;
    std::cout << " The Permutation is " << s <<'\n' << endl;
} while(std::next_permutation(s.begin(), s.end
}

因此,当我尝试输入一个四个字母的单词时,它只显示字母和排列不会发生。我在这做错了什么? PS我仍然是初学者和学习C ++的学生所以请清楚地解释它:)

1 个答案:

答案 0 :(得分:1)

std::cin >> s;接受用户的输入。鉴于你想要做什么,每次循环都这样做是没有意义的。将它移到循环外部并遍历循环中的排列。

std::string s = "";
std::cout << "Please Enter any word" << '\n';
std::cin >> s;
std::sort(s.begin(), s.end());
do {
    std::cout << " The Permutation is " << s <<'\n' << endl;
} while(std::next_permutation(s.begin(), s.end);