2016-07-13 2 views
-4

Эй, ребята, у меня есть это задание, над которым я работаю, и мне нужна помощь в этом вопросе. Мне был предоставлен текстовый документ с тысячами слов, и мне нужно найти количество слов любой возможной длины и напечатать, сколько есть в таблице. Это то, что я получил до сих порКак найти количество слов в списке?

inStream.open("EnglishWords.txt", ifstream::in); 

string word; 
//int number of letters; 
//int number of words; 

while (inStream) { 

    inStream >> word; 
    if (word.length() == //Something..) 
     //print << number of letters << number of words; 

} 

Так что у меня в основном ничего нет. Любой из вас, ребята, может помочь мне здесь? или дать мне направление, как я должен начать?

+0

Я бы порекомендовал взглянуть на учебник или книгу в соответствии с введением к кодированию. Определенная базовая концепция может иметь потенциальное применение здесь. – Bettorun

+2

Возможный дубликат [Подсчет событий каждого слова в текстовом файле] (http://stackoverflow.com/questions/16867944/counting-occurrences-of-each-word-in-a-text-file) –

ответ

0

Вы можете сделать std::map, которая хранит два int с и сделать это:

std::map<int, int> map; 

while (inStream) { 
    map[word.length()]++; // increment number of words for given length 
} 

затем напечатать все слова каждой длины, вы можете сделать for цикл:

for (auto i = 0; i < MAX_LENGTH; ++i) { 
    std::cout << "words of length " << i << ": " << map[i] << '\n'; 
} 

I не тестировали, но это всего лишь идея.

P.S. Редакции, сделанные благодаря Бену, который прояснил цель вопроса.

+0

Его количество слова с длиной, поэтому я думаю, что 'std :: map ' и 'map [word.length] ++' будет достаточно. –

+0

Ах, спасибо. Я исправлю это. –

Смежные вопросы