codice:
#include <stdio.h>
#include <string.h>
//prototipi di funzione
void Swap(char* string,int i,int j);
void Permutations(char *string,int i ,int n);
void main()
{
char s[256];//poi per lungezze maggiori ti arrangi tu ma tanto il tempo di esecuzione
//cresce col fattoriale e non conviene esagerare con la lungezza....
printf("Dammi la stringa (max 255 caratteri):");
scanf("%s",s);
Permutations(s,0,(int)strlen(s)-1);
}
//Genera ricorsivamente le permutazioni
void Permutations(char *string,int i ,int n)
{
int j;
if(i==n)
{
for(j=0;j<=n;j++)
printf("%c",string[j]);
printf("\n");
}
else
{
for( j = i ; j<=n ; j++ )
{
Swap(string,i,j);
Permutations(string,i+1,n);
Swap(string,i,j);
}
}
}
//Effettua un semplice scambio di posizione
void Swap(char* string,int i,int j)
{
int temp;
temp = string[i];
string[i] = string[j];
string[j] = temp;
}
Toh...!Dimmi se ti va bene.