已知不同字母构成的串,求它的全排列。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void f(char* b,int loc)
{
if(loc == strlen(b) - 1)
{
printf("%s\n",b);
return;
}
for(int i = loc ; i < strlen(b) ; i++)
{
char t = b[i];
b[i] = b[loc];
b[loc] = t;//交换
f(b,loc + 1);
char m = b[i];
b[i] = b[loc];
b[loc] = m;//回溯
}
}
int main()
{
char* s=malloc(100);
gets(s);
f(s,0);
}