Problem :- Write a program in C to print all the permutations of a String.
Solution:-
#include <stdio.h>
#include<string.h>
/* Function to print permutations takes three parameters:-(String, Starting index, Ending index) */
void permutation(char *arr, int i, int n)
{
int j;
if (i == n)
{
if(strlen(arr)==n)
{
printf("%s\n", arr);
}
}
else
{
for (j = i; j <= n; j++)
{
swap((arr+i), (arr+j));
permutation(arr, i+1, n);
swap((arr+i), (arr+j));
}
}
}
void swap (char *x, char *y)
{
char temp;
temp = *x;
*x = *y;
*y = temp;
}
int main()
{
char arr[100];
gets(arr);
int len=strlen(arr);
permutation(arr, 0, len);
getchar();
return 0;
}