// 12a.cpp : This file contains the 'main' function. Program execution begins and ends there. // #include #include using namespace std; #define ARRAY_SIZE 100 #define EXIT 5 void GetChoice(int& choice); void PrintList(string strs[ARRAY_SIZE], int& strct); void FindSubstring(string strs[ARRAY_SIZE], int& strct); void RemoveItem(string strs[ARRAY_SIZE], int& strct); void AddStr(string strs[ARRAY_SIZE], int& strct); int main() { string strs[ARRAY_SIZE]{}; string substring; int strct = 0, choice = 0; while (choice != EXIT) { GetChoice(choice); switch (choice) { case 1: AddStr(strs, strct); break; case 2: PrintList(strs, strct); break; case 3: FindSubstring(strs, strct); break; case 4: RemoveItem(strs, strct); break; case EXIT: cout << "Exiting Program..."; break; default: cout << "Unknown choice: " << choice; break; } } } void GetChoice(int& choice) { string menu = "\t\t--String program--\n\ \t1. Add a string\n\ \t2. Print out string list\n\ \t3. Find a substring\n\ \t4. Remove an element\n\ \t5. Exit Program\n\n\ Input your choice: "; cout << menu; cin >> choice; while (!cin) { cout << "Input was not an integer. Please try again." << endl; cin.clear(); cin.ignore(); cout << menu; cin >> choice; } } void AddStr(string strs[ARRAY_SIZE], int& strct) { string newstr; cout << "Input a string: "; cin.clear(); cin.ignore(); getline(cin, newstr); strs[strct++] = newstr; cout << newstr << " added to list.\n"; } void PrintList(string strs[ARRAY_SIZE], int& strct) { cout << "Outputing string list:" << endl; for (int i = 0; i < strct; i++) { cout << strs[i] << endl; } } void FindSubstring(string strs[ARRAY_SIZE], int& strct) { string search; int start = 0; cout << "Input the substring to search for: "; cin.clear(); cin.ignore(); getline(cin, search); for (int i = 0; i < strct; i++) { if (strs[i].find(search) != string::npos) { cout << search << " was found in string " << i + 1 << ": " << strs[i] << " at position " << strs[i].find(search) << endl; return; } } cout << search << " could not be found in the list." << endl; } void RemoveItem(string strs[ARRAY_SIZE], int& strct) { int loc; cout << "Input the item to remove: "; cin >> loc; while (!cin || loc > strct || loc < 0) { if (!cin) { cout << "Please input a valid integer." << endl; } else if (loc > strct || loc < 1) { cout << "Please input a value between 1 and " << strct+1 << "." << endl; } cin.clear(); cin.ignore(); cout << "Input the item to remove: "; cin >> loc; } cout << "Rmeoving item: " << loc << endl; for (int i = loc-1; i < strct; i++) { strs[i] = strs[i + 1]; } strct--; }