blob: 13374db704db11e638178fe51d27a4c2d8b7de0b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void
die_help(const char* argv0) {
fprintf(stderr, "Usage: %s <word>\n", argv0);
exit(1);
}
void
swap_chr(char *a, char *b) {
char t = *a;
*a = *b;
*b = t;
}
void
p(char *string, size_t x, size_t i) {
size_t j = 0;
if (i == x) {
puts(string);
return;
}
for (j = i; j < x; j++) {
swap_chr(&string[i], &string[j]);
p(string, x, i+1);
swap_chr(&string[i], &string[j]);
}
}
int
main(int argc, char **argv)
{
if (argc != 2)
die_help(argv[0]);
p(argv[1], strlen(argv[1]), 0);
return 0;
}
|