Can anyone please explain me, step by step, each line of the following sorting algorithm which sorts the input lines numerically, if -n is given at the command line. (Program taken from the book "The C programming language, by brian kernighan and Dennis Ritchie" - Chapter 5. Section 5.11, page no.119)
#include<stdio.h>
#include<string.h>
#define MAXLINES 5000;
char *lineptr[MAXLINES};
int readlines(char *lineptr[], int nlines);
void writelines(char *lineptr[], int nlines);
void qsort(void *lineptr[], int left, int right, int (*comp)(void *, void *);
int numcmp(char *, char *);
main(int argc, char *argv[])
{
int nlines;
int numeric = 0;
if(argc > 1 && strcmp(argv[1],"-n") == 0)
numeric = 1;
if((nlines = readlines(lineptr, MAXLINES))>=0)
{
qsort((void **)lineptr, 0, nlines-1,(int (*)(void*, void*))(numeric ? numcmp : strcmp);
writelines(lineptr, nlines);
return 0;
}
else
{
printf("Input too short\n");
return 1;
}
}
what does this line mean..."qsort((void **)lineptr, 0, nlines-1,(int (*)(void*, void*))(numeric ? numcmp : strcmp);"
.
.
.