Source of split_names.cpp


  1: //splitnames.cpp
  2: //Separates initials from last names.

  4: #include <iostream>
  5: #include <string>
  6: using namespace std;


  9: void DisplayUsage();
 10: /**<
 11: Display information on program usage.
 12: @return void
 13: @pre  None.
 14: @post Information on program usage has been displayed.
 15: */


 18: int main(int argc, char* argv[])
 19: {
 20:     if (argc == 1)
 21:     {
 22:         DisplayUsage();
 23:         cout << "Press Enter to continue ... ";  cin.ignore(80, '\n');
 24:         return 1;
 25:     }

 27:     cout << "\nInitials:   ";
 28:     for (int i=1; i<argc; i++)
 29:         cout << argv[i][0] << " ";
 30:     //The above line could be replaced by the one below.
 31:     //cout << *argv[i] << " ";
 32:     cout << endl;

 34:     cout << "\nLast Names: ";
 35:     for (int i=1; i<argc; i++)
 36:         cout << argv[i]+1 << " ";
 37:     cout << endl << endl;
 38: }


 41: void DisplayUsage()
 42: {
 43:     string blankLinesBefore(15, '\n');
 44:     string blankLinesAfter(6, '\n');
 45:     cout << blankLinesBefore
 46:         << "\nThis program requires one or more parameters.\nEach "
 47:         "parameter is assumed to be a concatenated first initial "
 48:         "and last name.\nThe program separates the inititals from "
 49:         "the last names and displays two lines\nof output, with "
 50:         "the initials on the first line and the names on the "
 51:         "second.\n\n"
 52:         "\nTypical usage:\n"
 53:         "\nprompt> split_names PScobey PLingras SKonstantinidis\n"
 54:         "\nThe output would be the following two lines:"
 55:         "\nInitials:   P P S"
 56:         "\nLast Names: Scobey Lingras Konstantinidis"
 57:         << blankLinesAfter;
 58: }