3 SEPARATE FILES HEADER CPP AND DRIVER The purpose of this a
3 SEPARATE FILES
HEADER
CPP
AND DRIVER
The purpose of this assignment is to practice using strings and C-strings. Your task is to create a class that counts words (by looking for spaces) and sentences (by looking for periods). The data will either come in dribs-and-drabs. Use the infamous operator \"Solution
//Feb_13_string.h
#include<iostream>
#include<string>
using namespace std;
class SpeechAnalyst
{
string myData;
public:
SpeechAnalyst();
void clear();
void addData(char *stuff);
void addStringData(string stuff);
int getNumberOfWords() const;
int getNumberOfSentences() const;
friend ostream& operator<<(ostream& out, const SpeechAnalyst& sa);
};
---------------------------
//Feb_13_string.cpp
#include\"Feb_13_string.h\"
SpeechAnalyst::SpeechAnalyst()
{
myData = \"\";
}
void SpeechAnalyst::clear()
{
myData = \"\";
}
void SpeechAnalyst::addData(char *stuff)
{
if (myData.length() ==0)
{
myData = stuff;
}
else
{
myData += \' \';
myData += stuff;
}
}
void SpeechAnalyst::addStringData(string stuff)
{
if (myData.length() == 0)
{
myData = stuff;
}
else
{
myData += \' \';
myData += stuff;
}
}
int SpeechAnalyst::getNumberOfWords() const
{
int count = 0,n;
for ( n = 0; n < myData.length(); n++)
{
if (myData[n] == \' \' )
{
count = count + 1;
}
}
if (myData[n] == \'\\0\' )
++count;
return count;
}
int SpeechAnalyst::getNumberOfSentences() const
{
int count = 0;
for (int i = 0; i < myData.length(); i++)
{
if (myData[i] != \'.\')
continue;
else
count++;
}
return count;
}
ostream& operator<<(ostream& out, const SpeechAnalyst& sa)
{
if (sa.myData == \"\")
cout << \"No data to display\";
else
{
out << sa.myData << endl;
out << \"Data has \" << sa.getNumberOfWords() << \" words\" << \" and \" << sa.getNumberOfSentences() << \" sentences\" << endl;;
return out;
}
}
-----------------------------
//Feb_13_string_Main.cpp
#include\"Feb_13_string.h\"
int main()
{
SpeechAnalyst sa;
cout << sa << endl;
string speech(\"Four score and seven years ago our fathers brought forth on this continet a new nation,conceived in liberty and dedicated to the proposition that all men are created equal.\");
//string speech(\"Four score and seven years ago our fathers brought forth on this continet a new nation.\");
sa.addStringData(speech);
cout << sa << endl;
sa.clear();
char *data = new char[50];
strcpy(data, \"Muffin says Hello.\");
sa.addData(data);
cout << sa << endl;
sa.addData(data);
cout << sa << endl;
}
-----------------------------------------------------------------------------------------
//output
No data to display
Four score and seven years ago our fathers brought forth on this continet a new
nation,conceived in liberty and dedicated to the proposition that all men are cr
eated equal.
Data has 29 words and 1 sentence
Muffin says Hello.
Data has 3 words and 1 sentence
Muffin says Hello. Muffin says Hello.
Data has 6 words and 2 sentences


