0% found this document useful (0 votes)
574 views2 pages

WINSEM2018-19 - CSE1002 - LO - SJT120 - VL2018195003969 - Reference Material I - Solution - Print All Permutations of A Given String Using Pointers

The document is a C program that prints all permutations of a given string using pointers. It includes functions to swap character values at two pointers, and permute the string by recursively swapping the first character with others and calling the function again until the base case of starting index meeting ending index is reached. The main function calls the permute function on the string "ABC" to print all its permutations.

Uploaded by

dhoni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
574 views2 pages

WINSEM2018-19 - CSE1002 - LO - SJT120 - VL2018195003969 - Reference Material I - Solution - Print All Permutations of A Given String Using Pointers

The document is a C program that prints all permutations of a given string using pointers. It includes functions to swap character values at two pointers, and permute the string by recursively swapping the first character with others and calling the function again until the base case of starting index meeting ending index is reached. The main function calls the permute function on the string "ABC" to print all its permutations.

Uploaded by

dhoni
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Write a program in C to print all permutations of a given string

using pointers.
// C program to print all permutations with duplicates allowed
#include <stdio.h>
#include <string.h>
 
/* Function to swap values at two pointers */
void swap(char *x, char *y)
{
    char temp;
    temp = *x;
    *x = *y;
    *y = temp;
}
 
/* Function to print permutations of string
   This function takes three parameters:
   1. String
   2. Starting index of the string
   3. Ending index of the string. */
void permute(char *a, int l, int r)
{
   int i;
   if (l == r)
     printf("%sn", a);
   else
   {
       for (i = l; i <= r; i++)
       {
          swap((a+l), (a+i));
          permute(a, l+1, r);
          swap((a+l), (a+i)); //backtrack
       }
   }
}
 
/* Driver program to test above functions */
int main()
{
    char str[] = "ABC";
    int n = strlen(str);
    permute(str, 0, n-1);
    return 0;
}

Output:

ABC

ACB

BAC
BCA

CBA

CAB

You might also like