63 lines
1.8 KiB
C++
63 lines
1.8 KiB
C++
// sayings1.cpp -- using expanded String class
|
|
// compile with string1.cpp
|
|
#include <iostream>
|
|
#include "string1.h"
|
|
const int ArSize = 10;
|
|
const int MaxLen =81;
|
|
int main()
|
|
{
|
|
using std::cout;
|
|
using std::cin;
|
|
using std::endl;
|
|
String name;
|
|
cout <<"Hi, what's your name?\n>> ";
|
|
cin >> name;
|
|
|
|
cout << name << ", please enter up to " << ArSize
|
|
<< " short sayings <empty line to quit>:\n";
|
|
String sayings[ArSize]; // array of objects
|
|
char temp[MaxLen]; // temporary string storage
|
|
int i;
|
|
for (i = 0; i < ArSize; i++)
|
|
{
|
|
cout << i+1 << ": ";
|
|
cin.get(temp, MaxLen);
|
|
while (cin && cin.get() != '\n')
|
|
continue;
|
|
if (!cin || temp[0] == '\0') // empty line?
|
|
break; // i not incremented
|
|
else
|
|
sayings[i] = temp; // overloaded assignment
|
|
}
|
|
int total = i; // total # of lines read
|
|
|
|
if ( total > 0)
|
|
{
|
|
cout << "Here are your sayings:\n";
|
|
for (i = 0; i < total; i++)
|
|
cout << sayings[i][0] << ": " << sayings[i] << endl;
|
|
|
|
int shortest = 0;
|
|
int first = 0;
|
|
for (i = 1; i < total; i++)
|
|
{
|
|
if (sayings[i].length() < sayings[shortest].length())
|
|
shortest = i;
|
|
if (sayings[i] < sayings[first])
|
|
first = i;
|
|
}
|
|
cout << "Shortest saying:\n" << sayings[shortest] << endl;;
|
|
cout << "First alphabetically:\n" << sayings[first] << endl;
|
|
cout << "This program used "<< String::HowMany()
|
|
<< " String objects. Bye.\n";
|
|
}
|
|
else
|
|
cout << "No input! Bye.\n";
|
|
// keep window open
|
|
/* if (!cin)
|
|
cin.clear();
|
|
while (cin.get() != '\n')
|
|
continue; */
|
|
return 0;
|
|
}
|