Sort an array of pointers to strings - C++ Data Type

C++ examples for Data Type:char array

Description

Sort an array of pointers to strings

Demo Code

#include <iostream>
#include <cstring>              //for strcmp(), etc.
using namespace std;
const int DAYS = 7;             //number of pointers in array
int main()/* w  w w.  j  a  va 2 s.c om*/
{
  void bsort(char**, int);     //prototype
  char* arrptrs[DAYS] = { "Sunday", "Monday", "Tuesday","Wednesday", "Thursday","Friday", "Saturday" };
  cout << "\nUnsorted:\n";
  for (int j = 0; j<DAYS; j++)    //display unsorted strings
    cout << *(arrptrs + j) << endl;
  bsort(arrptrs, DAYS);        //sort the strings
  cout << "\nSorted:\n";
  for (int j = 0; j<DAYS; j++)        //display sorted strings
    cout << *(arrptrs + j) << endl;
  return 0;
}
void bsort(char** pp, int n)    //sort pointers to strings
{
  void order(char**, char**);  //prototype
  int j, k;                    //indexes to array
  for (j = 0; j<n - 1; j++)         //outer loop
    for (k = j + 1; k<n; k++)      //inner loop starts at outer
      order(pp + j, pp + k);           //order the pointer contents
}
void order(char** pp1, char** pp2)  //orders two pointers
{                            //if string in 1st is
  if (strcmp(*pp1, *pp2) > 0)  //larger than in 2nd,
  {
    char* tempptr = *pp1;     //swap the pointers
    *pp1 = *pp2;
    *pp2 = tempptr;
  }
}

Related Tutorials