给定一个字符串,其含有的字符各不相同。程序输出该字符串的所有排列(全排列)情形。完善代码 只填一个语句
void f(char *str, int len, int n){
int i;
char tmp;
char *p = (char *)malloc(__________);
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;
_______________;
strcpy(str,p);
}
}
free(p);
}
int main(int argc, char **argv)
{
char str[] = "xyz";
f(str,3,0);
printf("\n");
return 0;
}
例如:给定字符串“xyz”,则程序输出:
xyz
xzy
yxz
yzx
zyx
zxy