52int main(
int argc,
char *argv[]) {
54 const char *algo_name =
"selection";
58 if (argc > 1 && strncmp(argv[1],
"--algo=", 7) == 0) {
59 algo_name = argv[1] + 7;
62 fprintf(stderr,
"unknown algorithm: %s\n", algo_name);
67 }
else if (argc > 1 && (strcmp(argv[1],
"-h") == 0 || strcmp(argv[1],
"--help") == 0)) {
73 if (argc > first_word) {
74 char **words = &argv[first_word];
75 size_t n = (size_t)(argc - first_word);
79 printf(
"Algorithm: %s\n", algo_name);
88 while (count <
MAX_WORDS && fgets(buffer,
sizeof(buffer), stdin)) {
89 buffer[strcspn(buffer,
"\n")] =
'\0';
90 if (buffer[0] ==
'\0')
continue;
91 words[count] = strdup(buffer);
93 fprintf(stderr,
"Memory allocation failed\n");
107 printf(
"Algorithm: %s\n", algo_name);
109 for (
size_t i = 0; i < count; i++) free(words[i]);
static void print_array(char **arr, size_t n, const char *label)
static string_sort_fn algo_from_name(const char *name)
static void print_usage(const char *prog)
void(* string_sort_fn)(char **, size_t)