/* use_qsort.c Sort command line arguments RJM Programming - July, 2015 */ #include #include #include int isbigger(char **g1, char **g2) { return strcmp(*g1, *g2); } int isnumericallybigger(char **g1, char **g2) { double dg1, dg2; sscanf(*g1, "%lf", &dg1); sscanf(*g2, "%lf", &dg2); if (dg1 == dg2) return 0; if (dg1 < dg2) return -1; return 1; } main(int argc, char **argv) { int (*funcArr[2])(char **, char **) = {&isbigger, &isnumericallybigger}; // declare sort function pointer array int myway=0; // 0 for increasing and 2 for decreasing (via /r switch) int mymode=0; // 0 for alphabetical and 1 for numerical sort (via /n switch) int j=1, k=1; while (*(argv[j] + 0) == '/') { if (*(argv[j] + 1) == 'r' || *(argv[j] + 1) == 'R') myway = 2; if (*(argv[j] + 1) == 'n' || *(argv[j] + 1) == 'N') mymode = 1; j++; k++; } for (j=0; j