title: Sorting an array of strings in C
body: <p>I have an assignment I've been working on for a few hours now, and I can't seem to get it quite right. The assignment is to take a random number of names (from stdin), sort them, and then output them in alphabetical order. I can't find any sites online that handle this kind of sorting specifically, and have had no luck trying to implement qsort() into my code. </p>
  
  <pre><code>#include &lt;stdio.h&gt;  
  #include &lt;string.h&gt;
  #include &lt;stdlib.h&gt;
  
  
  int stringcmp(const void *a, const void *b) 
  { 
      const char **ia = (const char **)a;
      const char **ib = (const char **)b;
      return strcmp(*ia, *ib);
  } 
  
  void main(int argc, char *argv[])
  {
       char *input[] = {" "};
       char temp[20][20];
       int i = 0;
       int num = 0;
       int place = 0;
       int stringlen = sizeof(temp) / sizeof(char);
  
  
            printf("How many names would you like to enter? ");
            scanf("%d", &amp;num);
  
            while (place &lt; num)
            {
                  printf("Please input a name(first only): ");
                  scanf("%s", input[place]);
                  printf("The name you entered is: ");
                  printf("%s\n", input[place]);
  
                  place++;
            }
            //qsort(temp, stringlen, sizeof(char *), stringcmp);      &lt;-- just an idea I was messing with
            qsort(input, stringlen, sizeof(char *), stringcmp);
  
            printf("Names:\n");
  
            for(i=0; i&lt;place; i++)
                 printf("%s\n", input[i]);
  
  
  
            system("PAUSE");
            return(EXIT_SUCCESS);
  
  }
  </code></pre>
  
  <p>The main problem is, when I go to output my code, I cannot use the char *input variable because of how its declared. The temp[] will display, but will not be sorted by qsort because it is not declared as a pointer. Any ideas?</p>