[2422] Re:第5章ポインタの真の使い方 単語の使用頻度を数える
投稿者:(ぱ)こと管理人
2025/05/19 00:46:42
はじめまして。ご質問ありがとうございます。
><読み込ませたtxtファイルの中身>
>ABCDE
>
><出力結果>
>A 1
>C 1
>E 1
>
>※なぜか1個飛ばしで結果が表示される。
このプログラムは「単語の」出現頻度を数えるプログラムであって、文字の出現頻度を
数えるものではないので、これは「1個飛ばし」ではありません。読み込ませたtxtファイルの
中身がABCDEなら、
ABCDE 1
が正しい出力結果です。
入力ファイルのエンコーディングがUTF16である可能性も考えましたが、その場合でも
A 1
B 1
C 1
D 1
E 1
となりそうなものです(当方で試したらそうなりました)。
get_word.cがそちらで打ち込まれたものなら、それをそのままここに貼っていただけないでしょうか?
27: } while ((ch = getc(fp)) != EOF && isalnum(ch));
このあたりが怪しい気がします。isalnumの前に!がついているとか。