Сгенерировать список всех возможных перестановок строки

Лучше использовать отслеживание cross-platform с возвратом

#include 
#include 

void swap(char *a, char *b) {
    char temp;
    temp = *a;
    *a = *b;
    *b = temp;
}

void print(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);
            print(a, i + 1, n);
            swap(a + i, a + j);
        }
    }
}

int main(void) {
    char a[100];
    gets(a);
    print(a, 0, strlen(a) - 1);
    return 0;
}

string

language-agnostic

cross-platform

2022-10-17T00:08:21+00:00
Вопросы с похожей тематикой, как у вопроса:

Сгенерировать список всех возможных перестановок строки