Read a list of strings from the keyboard, sorts them, and then displays them - C String

C examples for String:String Array

Description

Read a list of strings from the keyboard, sorts them, and then displays them

Demo Code

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

#define MAXLINES 25/* www.  j  av  a 2  s.c  o m*/

int get_lines(char *lines[]);
void sort(char *p[], int n);
void print_strings(char *p[], int n);

char *lines[MAXLINES];

int main(void)
{
   int number_of_lines;
   number_of_lines = get_lines(lines);

   if (number_of_lines < 0)
   {
      puts(" Memory allocation error");
      exit(-1);
   }

   sort(lines, number_of_lines);
   print_strings(lines, number_of_lines);
   return 0;
}

int get_lines(char *lines[])
{
   int n = 0;
   char buffer[80];  /* Temporary storage for each line. */

   puts("Enter one line at time; enter a blank when done.");

   while ((n < MAXLINES) && (gets_s(buffer) != 0) && (buffer[0] != '\0'))
   {
      if ((lines[n] = (char *)malloc(strlen(buffer) + 1)) == NULL)
         return -1;
      strcpy(lines[n++], buffer);
   }
   return n;

}
void sort(char *p[], int n) {
   int a, b;
   char *x;

   for (a = 1; a < n; a++) {
      for (b = 0; b < n - 1; b++) {
         if (strcmp(p[b], p[b + 1]) > 0) {
            x = p[b];
            p[b] = p[b + 1];
            p[b + 1] = x;
         }
      }
   }
}

void print_strings(char *p[], int n)
{
   int count;

   for (count = 0; count < n; count++)
      printf("%s\n", p[count]);
}

Result


Related Tutorials