Заполните строку словами, данными из ввода

0

Входные данные :

Today я eat bread. Today я eat cookies.

Вывод:

eat: 2

I: 2

Today: 2

bread: 1

cookies: 1

Я должен сделать программу, которая подсчитывает количество раз, когда на входе появляется слово. Тогда, если количество раз совпадает между некоторыми словами, я показываю их в алфавитном порядке. До сих пор я это делал:

#include <iostream>
#include <string>
#include <stdio.h>
#include <stdlib.h>

using namespace std;

int countt (string text);

int main () {
    string text;
    while (getline(cin,text))     //Receive the input here
    countt(text);                //Send the input to countt
    return 0;
}

int countt (string text) {
    int i,j;
    string aux;     //I make a string aux to put the word to compare here
        for (std::string::const_iterator i = text.begin(); *i != ' '; i++){
            for (std::string::const_iterator j = aux.begin(); j != text.end(); j++)
                *j=*i; //But here an error is given: 25:9: error: assignment of read-only location ‘j.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator*<const char*, std::basic_string<char> >()
        }
        }

Спасибо заранее.

  • 0
    Используя каждый раз отладчик и пытаясь найти источник ошибки, вы станете самодостаточным программистом . Напротив, обращение за помощью каждый раз, когда вы получаете ошибку, ухудшает ваши способности к решению проблем .
Теги:
string
iterator
char

2 ответа

1

Ссылаясь конкретно на комментарий об ошибке, который у вас есть в вашем коде:

В вашем цикле for вы используете const_iterator а затем вы разыскиваете этот итератор и назначаете ему, что вам не разрешено делать, потому что оно const.

Повторите попытку с помощью string::iterator.

0

Прочитайте строку в строке, как и сейчас. Но затем используйте std::istringstream для токенизации ввода. Используйте std::unordered_map для хранения слов в виде ключей и подсчета в качестве данных.

  • 0
    Как я могу использовать istringstream? Я смотрю вверх, но не очень хорошо понимаю, как я могу использовать это здесь ..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню