K.Maebashi's BBS 投稿フォーム
ハンドル名
件名
Link
>>はじめまして。 > >はじめまして。質問ありがとうございます。 >>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「関数の因数として配列を渡す(つもり)」 > >正しくは「因数」ではなくて「引数」ですが、誤変換さておき、 >「引数」の読みは「ひきすう」です。念のため。 >
spamよけのため、ここに「ほげぴよ」と入力してください。
削除パスワード :
クリック!