それで、宿題の最後の章の復習問題に取り組んでいます。
私の質問は、ユーザーが文字列の文を入力した場合、どのように単語数をカウントするのでしょうか? クラスでカバーされていなかった、またはクラスでカバーされるとは思いません。
文を要求し、getline を使用して文字列を読み取ることまではできましたが、入力をファイルに書き込み、同じファイルを開き、そのように単語をカウントする以外に、個々の単語をカウントするにはどうすればよいでしょうか?
それで、宿題の最後の章の復習問題に取り組んでいます。
私の質問は、ユーザーが文字列の文を入力した場合、どのように単語数をカウントするのでしょうか? クラスでカバーされていなかった、またはクラスでカバーされるとは思いません。
文を要求し、getline を使用して文字列を読み取ることまではできましたが、入力をファイルに書き込み、同じファイルを開き、そのように単語をカウントする以外に、個々の単語をカウントするにはどうすればよいでしょうか?
これは宿題なので完全な答えではありませんが、 の機能を確認してください<string.h>
。基本的に、文字列内の次の非空白文字を見つけ、次に次の空白文字を見つけて、カウンターをインクリメントし、文字列の最後に到達するまで繰り返します。
入力文が a であるとしますstr
。char *
int count = 0;
for(int i = 0; i < strlen(str); i++){
while(i < strlen(str) && str[i] != ' ')
i++;
count++;
}
これは、クラスの特別なメソッドなしで手動でカウントを行う方法ですstring.h
。
hereのように、文字列を空白で区切られたトークンの範囲に変換するために、std::istringstream
と組み合わせて使用できます。std::istream_iterator
範囲内の要素を数えるには、単に使用しますstd::distance
。
宿題なので実際のコードは提供しないと思いますが、お気軽に質問してください。