K.Maebashi's BBS 削除ページ

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

[2353] Re:! isalnum(ch);
返信
投稿者:(ぱ)こと管理人
2024/01/09 00:59:36

>はじめまして。 はじめまして。質問ありがとうございます。 >List 1-10 get_word.c内の >上記の!isalnum(ch)が(真)の為、20行目のbuf[len]=ch;には >入力(stdin)時に文字以外の記号などがあれば格納されしまうと思うのです。 英数字以外の記号などが来た場合、isalnum(ch)はfalseですから、 それに!を付けた「!isalnum(ch)」は真になります。 そして、「!isalnum(ch)」が真(かつファイルが終わらない)間、 11~12行目のループがぐるぐる回りますから、英数字以外の文字を読み飛ばすことになって、 17行目では「ここで,chには,単語の最初の文字が格納されている」ことになります。 ええと、11行目のwhile文について、波括弧を省略したのが誤解を招いたでしょうか。 10: /* 空白文字の読み飛ばし */ 11: while ((ch = getc(fp)) != EOF && !isalnum(ch)) { 12: ; 13: } これなら、読み飛ばしている感じがつかめるでしょうか。 ところで、細かいツッコミですみませんが、 >1-4-6「関数の因数として配列を渡す(つもり)」 正しくは「因数」ではなくて「引数」ですが、誤変換さておき、 「引数」の読みは「ひきすう」です。念のため。
パスワード:

管理者削除