#include <iostream>
using namespace std;
int main() {
string searchWord;
string userParagraph = "Today is a day like another day";
//search for particular word - member function
//std::cout << "Please indicate a word which you like to be found in the paragraph you entered: ";
getline(std::cin, searchWord);
//pos determines the position in the array it's in if the word is found and goes until the end of string.
size_t pos = 0;
int wordCount = 0;
//npos = not found OR -1.
while (( pos = userParagraph.find(searchWord, pos)) != std::string::npos) {
bool wstart = pos==0 || !isalpha(userParagraph[pos-1]);
bool wend = pos+searchWord.size()==userParagraph.size()
|| !isalpha(userParagraph[pos+searchWord.size()]);
if (wstart && wend)
++wordCount;
++pos;
}
if (wordCount == 0) {
std::cout << "The word you entered, '" << searchWord << "', was not found." << std::endl << std::endl;
}
else {
std::cout << searchWord << " was Found " << wordCount << " times." << std::endl << std::endl;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CglzdHJpbmcgc2VhcmNoV29yZDsgCglzdHJpbmcgdXNlclBhcmFncmFwaCA9ICJUb2RheSBpcyBhIGRheSBsaWtlIGFub3RoZXIgZGF5IjsKCQogICAgLy9zZWFyY2ggZm9yIHBhcnRpY3VsYXIgd29yZCAtIG1lbWJlciBmdW5jdGlvbgogICAgLy9zdGQ6OmNvdXQgPDwgIlBsZWFzZSBpbmRpY2F0ZSBhIHdvcmQgd2hpY2ggeW91IGxpa2UgdG8gYmUgZm91bmQgaW4gdGhlIHBhcmFncmFwaCB5b3UgZW50ZXJlZDogIjsgCiAgICBnZXRsaW5lKHN0ZDo6Y2luLCBzZWFyY2hXb3JkKTsKCiAgICAvL3BvcyBkZXRlcm1pbmVzIHRoZSBwb3NpdGlvbiBpbiB0aGUgYXJyYXkgaXQncyBpbiBpZiB0aGUgd29yZCBpcyBmb3VuZCBhbmQgZ29lcyB1bnRpbCB0aGUgZW5kIG9mIHN0cmluZy4gCiAgICBzaXplX3QgcG9zID0gMDsKICAgIGludCB3b3JkQ291bnQgPSAwOwoKICAgIC8vbnBvcyA9IG5vdCBmb3VuZCBPUiAtMS4KICAgIHdoaWxlICgoIHBvcyA9IHVzZXJQYXJhZ3JhcGguZmluZChzZWFyY2hXb3JkLCBwb3MpKSAhPSBzdGQ6OnN0cmluZzo6bnBvcykgewogICAgCWJvb2wgd3N0YXJ0ID0gcG9zPT0wIHx8ICFpc2FscGhhKHVzZXJQYXJhZ3JhcGhbcG9zLTFdKTsKICAgIAlib29sIHdlbmQgPSBwb3Mrc2VhcmNoV29yZC5zaXplKCk9PXVzZXJQYXJhZ3JhcGguc2l6ZSgpIAogICAgCSAgICAgICAgfHwgIWlzYWxwaGEodXNlclBhcmFncmFwaFtwb3Mrc2VhcmNoV29yZC5zaXplKCldKTsKICAgICAgICBpZiAod3N0YXJ0ICYmIHdlbmQpCiAgICAgICAgICAgICsrd29yZENvdW50OwoKICAgICAgICArK3BvczsKICAgIH0KCiAgICBpZiAod29yZENvdW50ID09IDApIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIlRoZSB3b3JkIHlvdSBlbnRlcmVkLCAnIiA8PCBzZWFyY2hXb3JkIDw8ICInLCB3YXMgbm90IGZvdW5kLiIgPDwgc3RkOjplbmRsIDw8IHN0ZDo6ZW5kbDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHN0ZDo6Y291dCA8PCBzZWFyY2hXb3JkIDw8ICIgd2FzIEZvdW5kICIgPDwgd29yZENvdW50IDw8ICIgdGltZXMuIiA8PCBzdGQ6OmVuZGwgPDwgc3RkOjplbmRsOwogICAgfQp9