cの文章と単語をカウントすることをgetChar()と
-
18-09-2019 - |
質問
特定のルールに従って、特定のテキストファイルに単語、音節、文のカウントを作成するプログラムを作成しています。
文は、aで終わる白人で区切られた単語のコレクションです。また !また ?ただし、これも文です。
Greetings, earthlings..
私がこのプログラムにアプローチした方法は、getChar()を使用して、一度に1文字でテキストファイルをスキャンすることです。メモリ内のテキストファイル全体を使用することは禁止されています。一度に1つの文字または単語でなければなりません。
私のジレンマは次のとおりです。GetChar()を使用して、現在のキャラクターが何であるかを確認できます。 EOF文字が見つかるまで、getChar()をループで使用し続けます。しかし、文の最後に複数の期間がある場合、それはまだ単一の文です。つまり、最後のキャラクターが私が分析している前のキャラクターとその後のキャラクターが何であるかを知る必要があります。私の考えを通して、これは別のgetChar()呼び出しを意味しますが、次のキャラクターでスキャンに行くと問題が発生します(現在はキャラクターをスキップしました)。
上記の文が実際に文であると私がどのように判断できるかについて、誰かが提案を持っていますか?
ありがとう、そしてあなたが明確化などが必要な場合は、私に知らせてください。
解決
非常にシンプルなものを実装する必要があります ステートマシン. 。文の終了を見つけたら、新しい文の開始を見つけるまでその状態にとどまります(通常、これは。
他のヒント
拡張可能な文法が必要です。たとえば、正規表現を探して、それを構築してみてください。
一般的に、人間の言語は多様であり、特に分析するための口語的なスピーチや異なる言語を持っている場合、簡単に解放できません。一部の言語では、単語と文の区別が何であるかさえ明確ではないかもしれません は.