你随意输入一串字符串,运行程序会自动把输入的字符串进行全排列
代码:
#include <iostream>
#include <stdio.h>
using namespace std;
void f(char *str, int len, int n)
{
int i;
char tmp;
char *p = (char *)malloc( sizeof(char)*len );
if(n==len-1){
printf("%s\n",str);
}else{
for(i=n;i<len;i++){
strcpy(p,str);
tmp = *(str+n);
*(str+n) = *(str+i);
*(str+i) = tmp;
f(str,len,n+1);
strcpy(str,p);
}
}
free(p);
}
int main(int argc, char **argv)
{
char str[100];
int T;
cout<<"请输入你需要全排列的字符串"<<endl;
fgets(str,sizeof(str),stdin);
cout<<endl;
T=strlen(str);
f(str,T-1,0);
//printf("\n");
system("pause");
return 0;
}