K.Maebashi's BBS 管理者削除

以下の投稿を削除します。

[2423] Re:第5章ポインタの真の使い方 単語の使用頻度を数える
返信
投稿者:hdmr
2025/05/19 21:33:28

お疲れ様です。 先生のご指摘の通り、「!isalnum(ch)」となっていました。 この部分を修正し、動作させると実行結果は「ABCDE 1」となりました。 ありがとうございます。 <修正前のget_word.c> int get_word(char* buf, int buf_size, FILE* fp) { int len; int ch = 0; /* 空白文字の読み飛ばし */ while (((ch = getc(fp)) != EOF) && !isalnum(ch)) { ; } if (ch == EOF) { return EOF; } /* ここで、chには、単語の最初の文字が格納されている */ len = 0; do { buf[len] = ch; len++; if (len >= buf_size) { /* 単語が長すぎるためエラー */ fprintf(stderr, "word too long\n"); exit(1); } } while (((ch = getc(fp)) != EOF) && !isalnum(ch)); //ミス!!!! buf[len] = '\0'; return len; }

代替メッセージ

物理削除     パスワード: