Найти сколько раз слово встречается в тексте c++
Написал код на C++ для подсчета сколько раз слово встречается в тексте. Но программа считает все варианты, даже если это слово входит в состав другого слова. Пример: Текст: la lan hla la, jsla. Программа выведет 5, хотя само слово встречается только 2 раза. Как доработать код:
#include <iostream>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
string text;
string word;
int count = 0;
cout « "Введите текст: ";
getline(cin, text);
cout « "Введите слово для поиска: ";
cin » word;
for (int i = 0; i < text.length(); i++)
text[i] = tolower(text[i]);
// проверка преобразования в нижний регистр cout « text « endl;
for (int i = 0; i < text.length(); i++){
if (text.substr(i, word.length()) == word){
count++;
}
}
cout « "Cлово " « word « " встречается в тексте " « count « " раз." « endl;
return 0;
}
Источник: Stack Overflow на русском