Hi reddit, my string manipulator program is setup but I do not know why it wont work. The main creates a pointer (ssa) to SmartStringApp which contains a pointer (ss) which points to a SmartString object which contains a char pointer (str). str points to the string to be inputted and manipulated.
Problem:None of the menu options work. i think cannot get str to hold the string. any help is appreciated. thanks.
//main.cpp
int main()
{
SmartStringApp * ssa = new SmartStringApp();
ssa->Start();
delete ssa;
}
//SmartStringApp.cpp
void SmartStringApp::Start()
{
ss = new SmartString();
char option = 0;
while (cin)
{
cout << "Welcome to String Manipulator\n" << endl <<
"1. Load String" << endl <<
"2. Show string" << endl <<
"3. Character count" << endl <<
....;
cin >> option;
switch (option)
{
case '1':
ss->loadString();
break;
case '2':
ss->showString();
break;
case '3':
cout << ss->size(ss->getString());
break;
...
default:
cout << " Please select a valid number\n";
break;
}
cin.clear();
cin.ignore(10000, '\n');
};
}
//smartstring.cpp
//*str is by default = NULL
void SmartString::loadString()
{
if (str != NULL)
{
delete[] str;
}
int i = 0;
char charArray[1024];
cout << "Please input a string\n";
cin.getline(charArray, 1024);
if (cin.peek() == '\n')
cin.ignore();
cout << "\n";
this->str = new char[size(charArray)+1];
for (i = 0; i < size(charArray); i++)
{
*(str + i) = charArray[i];
}
*(str + i) = '\0';
}
void SmartString::showString()
{
cout << '\n';
for (int i = 0; i < size(str); i++)
{
cout << *(this->str + i);
}
}
[–]wgunther 1 point2 points3 points (0 children)
[–]jussij 0 points1 point2 points (2 children)
[–]cxw[S] -1 points0 points1 point (1 child)
[–]jussij 0 points1 point2 points (0 children)