dポイントプレゼントキャンペーン実施中!

When in Rome, do as the Romans do.
をchar形配列に格納し、文字列に含まれる(空白以外の)文字数と単語数を数え、結果を画面に出力するプログラムがうまくできません。文字数と単語数の数え方がさっぱり…
アドバイスしていただけると幸いです。よろしくお願いします

A 回答 (3件)

文字数も数えると云う事なので、左から右端(NULL文字)まで1文字ずつ


走査して行きます。ここで、単語も構成する文字がA-Z,a-zであるとして、
文字から空白や記号(','や'.'、NULL文字も含む)に変わったら一つの単語
とします。

具体的には、

1. カウンタ、フラグを初期化
2. NULL文字になるまで繰り返し
3. 文字かどうか判定する
4. 文字なら文字をカウントして、フラグをセット
5. 文字でないなら、
6. フラグがセットされていれば単語数をカウントしフラグをおろす
7. フラグがセットされていないのなら何もしない
8. 1へ

でいけると思います。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
とてもわかりやすく説明していたき、ありがとうございます。
これならなんとかなりそうです。
ありがとうございました。

お礼日時:2007/07/01 14:07

★アドバイス


>多分これを使わなくてもできるのだと思うのですが、なにかいい方法はありませんか?
 ↑
 それが分かるのなら自力で出来る気がしますが…。
・いい方法とはアルゴリズムのことですか?
 文字数は isalpha() 関数でチェックして英大文字、英小文字の場合にカウンタを
 インクリメントすればよい。
 単語数はアルファベット、空白文字の並びがいくつ登場するかをカウントすればよい。
 空白文字は isspace() 関数でチェックできます。
・両方とも文字検査関数と組み合わせるだけでカウントできます。
 ctype.h ヘッダをインクルードすれば利用できるようになります。
・以上。

参考URL:http://always-pg.com/c/runtime_rd/character/isal …
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。なんか難しそうですが自分なりに調べて試してみます。ありがとうございました

お礼日時:2007/07/01 14:06

strtok という関数について調べてみてください。



参考URL:http://www1.cts.ne.jp/~clab/hsample/Func/Func08. …

この回答への補足

アドバイスありがとうございます
strtokですか…。見てみましたがこの関数はまだ習ってません。
多分これを使わなくてもできるのだと思うのですが、なにかいい方法はありませんか?

補足日時:2007/06/29 17:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!