C语言版 输出字符串全排列

问题:输入一字符串(要求不存在重复字符),打印出该字符串中字符中字符的所有排列。 
例如:输入”abc”,输出结果为abc, acb, bac, bca, cab和cba。

C语言版 输出字符串全排列_第1张图片

遇到这个问题,笔者搜了一下,网上有很多答案,但似乎没有我想要的简单一点的纯C语言编写的,所以自己动手写了一下:

#include 
#include 
int main()
{
   void func(char a[],int k);
   char a[26];
   scanf("%s",&a);
   func(a,0);

   return 0;
}

void func(char a[],int k){
    int i ,temp;
    if(k == strlen(a)){
       printf("%s ",a);
    }
    for(i=k;i

输入:abcd

C语言版 输出字符串全排列_第2张图片

输出:

C语言版 输出字符串全排列_第3张图片

 

你可能感兴趣的:(程序员,C语言)