付録B10printfのようなフォーマット指定子で日付の出力ができるみたいです。付録B3第二引数のどれかの文字にマッチしたらそのポインタを返す。b文字検索とかで使う?のかな。なんかよく意味がわからないので実際に使ってみる。付録B1.6ファイルポインタの位置を先頭に戻す関数。これはfseekとclearerrの組み合わせと同じ結果になる。rewind(fp)で一発で書けるので先頭に戻したいときはこれ使ったほうが楽だね。K&R付録以外の1〜8章まで全て読み終わりました。基本的な部分は勉強済みだったので割とスンナリ読めました。最後の最後、8.7の記憶割り当ての話はちょっと難しすぎて今の段階では良くわからなかったです。演習8-1とりあえずファイルのオープンだけでやってみました。7.8.4system関数を使えば、別のコマンドを実行できる。7.8.3ungetcを使うとgetchar等で取得した文字を一つだけ戻すことができます。ためしに二つ進んで一つ戻す処理を書いてみます。二つのファイルを比べて、違っている最初の行を印字するプログラムを書け。共用体の利用を簡単にするのには、一つ特別な方法が用意されている。6.5前回の記事で単語算出の処理を書きました。K&Rのサンプルを見ていると二分木にデータを追加する処理に再帰を使っていました。いうことで僕が作ったプログラムも再帰版に書き換えてみようかと思います。argv[0]にあるどんな名前で呼ばれたかにより、大文字を小文字に、あるいは小文字を大文字に変換するプログラムを書け。なんだか凄いトリッキーな処理ですね。演習6-5ハッシュの実装は一度やっていますが、K&R本に載っていたハッシュ実装(チェイン法)がなかなか良さそうだったので参考にしながら自分で再実装してみます。Cのプログラムを読み込んで、最初の6文字が同じで、その後のどこかが異なっている変数名の各グループを、アルファベット順に印字するプログラムを書け。文字列やコメントの中の単語は数えるな。sortを変更して分類を逆方向にすることを指示する-rというフラグを取り扱えるようにせよ。分類において、大文字と小文字の区別をなくしてしまうためのオプション-fを加えよ。これだと別の型の場合に同じような別の関数を作らなくてはいけないので面倒でした。6.5単語数の算出処理に二分木の話が出てきたので復習がてら実装してみる。所見なんだこりゃってなったけど少し考えてわかった。これはつまり関数ポインタの配列ってことね。関数プロトタイプを宣言してないので一瞬なんだろうと迷ってしまった。入力の最後のn行を印字するプログラムtailを書け。-nで最後のn行を印字するようにせよ。プログラムentabとdetabを書き直して、タブストップの並びを引数として受け取るようにせよ。引数がないときは通常のタブ設定を使用せよ。なんか問題文がややこしいな・・・。今回はdetabだけやります。これらがすなわち正しいポインタの操作方法となる。Cでは、データを正しく指すポインタは0にならないことを保証しているから、0という戻り値は、異常事態の発生を知らせるのに使うことが出来る。ポインタと整数は相互交換可能ではない。ゼロは唯一の例外である。コマンド行からの逆ポーランド式を計算するプログラムexprを書け。各演算子あるいは被演算数は引数として分離されているものとする。*なら2×(3+4)を計算するようにせよ。これはかなりプログラムらしい演習ですね。文字を扱うライブラリ関数strncpy、strncat、strncmpを書け。strncpy(s,t,n)はtの最大n文字をsにコピーするものにせよ。文字列tが文字列sの終りにあるときには1を、そうでないときにはゼロを返す関数strend(s,t)を書け。atofを拡張して、次のような科学記法を扱えるようにせよ。123.45e-6ここで、浮動小数点のうしろには、eやEと符号の付きうる指数部が続いてもよいとする。ように、関数の宣言が引数を含まないときには、このatofの引数については何も仮定しないものと受け取られ、すべてのパラメータ・チェック機能はオフにされる。printdのアイデアを使ってitoaの再帰版を書け。再帰ルーチンを呼ぶことによって整数を文字列に変換せよ。再帰を使って変換ですか。文字列s2の任意の文字と等しい文字列s1の最初の文字位置を返す関数any(s1,s2)を書け。一致する文字がなければ-1を返す。今度は誤読しないよう。文字列s2中の任意の文字に等しい文字をs1から除去するような形のsqueeze(s1,s2)を書け。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。