2016-07-13 10 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

次の2つのint秒を格納std::mapを作成し、これを行うことができます。各長さのすべての単語を印刷し、その後

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

ああ、ありがとう。私はこれを解決します。 –

関連する問題