#include <iostream>
#include <sstream>
#include <list>
using namespace std;
int main()
{
struct Word
{
int num;
string text;
};
string text;
Word word;
word.num = 1;
list<Word> wordList; //список
bool wordRepeat = false;
cout << "Введите текст нижним регистром, без знаков препинания и нажмите Enter \n";
getline(cin, text); //вводим строк
istringstream iss(text); //превращаем строку в поток
while(iss >> word.text) //берем слово из потока
{
for(Word i : wordList)//проверяем на совпадения
{
if (word.text == i.text)
{
i.num++;
//i.text = i.text + "+";
wordRepeat = true;
break;
}
}
if (!wordRepeat) wordList.push_back(word);
wordRepeat = false;
}
for(Word i : wordList)//ВЫВОДИМ слова с кол-вом
{
cout << i.text << " " << i.num << endl;
}
return 0;
}
Вот тут
for(Word i : wordList)//проверяем на совпадения
{
if (word.text == i.text)
{
i.num++;
вы меняете счетчик В КОПИИ, а не в оригинале...
Вот так нужно:
for(Word& i : wordList)
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники