题目:
输入一个字符串,打印出该字符串中字符的所有排列。
例如输入字符串abc,则打印出有字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。
#include <stdio.h>
void foo(char *a,char *m)
{
if(*m=='\0')
{
printf("%s\n",a);
return;
}
else
{
for(char *p=m;*p!='\0';p++)
{
char t=*p;
*p=*m;
*m=t;
foo(a,m+1);
t=*p;
*p=*m;
*m=t;
}
}
}
void allRange(char *a)
{
if(a==NULL)
return;
foo(a,a);
}
void main()
{
char a[100];
scanf("%s",a);
allRange(a);
}