文字列内の単語の長さとその単語の出現回数を調べようとしています。また、私は単語の平均の長さを見つける必要があります。Cで文字列を操作して、ユーザー入力とバッファ長が80
5 character word occurred 5 times
9 character word occurred 2 times
average length of the word is 5.6
私はこれまでこれを持っていますが、出現と文字を理解することはできません。平均はうまく動作します。
int ch;
int numWords = 0;
int numLetters = 0;
bool prevWasASpace = true; //spaces at beginning are ignored
printf("Enter a sentence: ");
while ((ch = getchar()) != EOF && ch != '\n')
{
if (ch == ' ')
prevWasASpace = true;
else
{
if (prevWasASpace)
numWords++;
prevWasASpace = false;
numLetters++;
}
}
if (numWords > 0)
{
double avg = numLetters/(float)(numWords);
printf("Average word length: %.1f (C = %d, N = %d)\n", avg, numLetters, numWords);
}
else
printf("You didn't enter any words\n");
return 0;
一つの最後の質問、どのように私は入力の4000個の文字を入力しますが、一度に80を取る?私は、大きな文字列を入力した場合、それは一度に80文字のためにこれを行うだろうが、実行されますすべての統計情報
どのようにすればよいか分からないことは、各単語の文字を個別に数える方法です。私は文字列全体を数える方法を知っています。個々の単語ではなく、これで私はこれを終了できません。 – G10
シンプルな解決策は、2つのカウンターを手紙のために保持することです.1つはカウンターを保持し、もう1つは新しい単語に出会うたびにゼロにリセットされます。 –