aboutsummaryrefslogtreecommitdiff
path: root/12c/12c.cpp
diff options
context:
space:
mode:
authorJacobAKnox <[email protected]>2021-11-10 19:47:43 -0800
committerJacobAKnox <[email protected]>2021-11-10 19:47:43 -0800
commit31a4c9661bcef963f0c12bf7855f341b5a85d7fe (patch)
tree7be09e087688cbaa5d9fa9aab6f768380381add5 /12c/12c.cpp
parent12b done (diff)
downloadcst116-lab7-jacobaknox-master.tar.xz
cst116-lab7-jacobaknox-master.zip
12c finishedHEADmaster
Diffstat (limited to '12c/12c.cpp')
-rw-r--r--12c/12c.cpp155
1 files changed, 155 insertions, 0 deletions
diff --git a/12c/12c.cpp b/12c/12c.cpp
new file mode 100644
index 0000000..dc1fbc9
--- /dev/null
+++ b/12c/12c.cpp
@@ -0,0 +1,155 @@
+// 12a.cpp : This file contains the 'main' function. Program execution begins and ends there.
+//
+
+#include <iostream>
+#include <string>
+
+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--;
+} \ No newline at end of file