Определить все возможные перестановки символов в данной строке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день, имеется рекурсивный код, задача которого определить все возможные перестановки символов в данной строке.
void swap (char *x, char *y)
{
    char temp;
    temp = *x;
    *x = *y;
    *y = temp;
}
void permute(char *a, int i, int n) {
   int j; 
   if (i == n)
     printf("%s\n", a);
   else
   {
        for (j = i; j <= n; j++)
       {
          swap((a+i), (a+j));
          permute(a, i+1, n);
          swap((a+i), (a+j)); 
       }
   }
   
}
int main(int argc, char** argv){
 
char str[] = "abc";
permute(str,0,2);
 
return (EXIT_SUCCESS);
}
Каким образом можно сделать так, чтобы получаемые строки не выводились на экран, а помещались в массив ?

Решение задачи: «Определить все возможные перестановки символов в данной строке»

textual
Листинг программы
qsort(m, count, MAXLEN, strcmp);

Объяснение кода листинга программы

В данном коде используется функция qsort (сортировка) для сортировки символов в строке. Список действий:

  1. m - указатель на массив символов в строке
  2. count - количество символов в строке
  3. MAXLEN - максимальная длина строки
  4. strcmp - функция сравнения символов Код сортирует символы в строке по алфавиту.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы