Tak Robert, men jeg kunne nu godt selv...
Her er kode som jeg arbejde på at få til at virke, den kunne jo være at andre kunne bruge det til noget, jeg har dog ikke komenteret kode så det er måske ikke så lige til.
#include <stdio.h>
#include <string.h>
void create_list(char remaining_chars[], char permuted_string[]) {
char temp_remaining_char_array[sizeof(remaining_chars) - 1];
char temp_remaining_char[2];
char temp_permuted_char_array[sizeof(permuted_string) + 1];
char temp_permuted_char[2];
int i, ii;
if(strlen(remaining_chars) != 1) {
memset(temp_remaining_char_array, '\\0', sizeof(temp_remaining_char_array));
memset(temp_remaining_char, '\\0', sizeof(temp_remaining_char));
memset(temp_permuted_char, '\\0', sizeof(temp_permuted_char));
for(i = 0; i < strlen(remaining_chars); i++) {
memset(temp_remaining_char_array, '\\0', sizeof(temp_remaining_char_array));
for(ii = 0; ii < strlen(remaining_chars); ii++) {
if(i != ii) {
temp_remaining_char[0] = remaining_chars[ii];
strcat(temp_remaining_char_array, temp_remaining_char);
}
}
strcpy(temp_permuted_char_array, permuted_string);
temp_permuted_char[0] = remaining_chars[i];
create_list(temp_remaining_char_array, strcat(temp_permuted_char_array, temp_permuted_char));
}
} else {
printf("%s%c\\n", permuted_string, remaining_chars[0]);
}
}
int main(int argc, char *argv[]) {
if(argc != 2) {
printf("Syntax: %s [string]", argv[0]);
} else {
create_list(argv[1], "");
}
return 0;
}
Indlæg senest redigeret d. 19.01.2007 16:17 af Bruger #3789