Определить все возможные перестановки символов в данной строке - 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 (сортировка) для сортировки символов в строке. Список действий:
m- указатель на массив символов в строкеcount- количество символов в строкеMAXLEN- максимальная длина строкиstrcmp- функция сравнения символов Код сортирует символы в строке по алфавиту.