Единственная проблема - слова дожны быть разделены (обобщёнными) пробелами
Код:
#include <string>
#include <sstream>
std::string src = "step gstep + stepa ?";
std::istringstream is(src);
std::string word;
std::string step = "step";
unsigned count;
for(count=0; is>>word;)
{
if (word==step) ++count;
}
std::cout << "found " << count << " words \"step\"" << std::endl;