#include #include using namespace std; int main() { string str0, search_term; cout << "Enter first string: "; getline(cin, str0); cout << "Enter search term: "; getline(cin, search_term); int match_counter = 0, search_counter = 0, last_i = 0, results = 0; // This version is a fully optimized such that only one loop was used for(int i = 0; i < str0.length(); i++) { if(str0[i] == search_term[search_counter]) { search_counter++; if(i+1 < str0.length() && search_counter < search_term.length()) { if(str0[i+1] != search_term[search_counter]) search_counter = 0; } if(search_counter == search_term.length()) { results++; search_counter = 0; } } } cout << "The first string has " << results << " instance(s) of \"" << search_term << "\"." << endl; return 0; }