Problem Set 5 - Mispellings

タイトルからミスペルッてるね。

この課題は…与えられたtext中の単語のスペルが合っているか、spell checkを行うプログラムspeller.cを完成させるもの。speller.cは変更せず、インクルードしているdictionary.hやdictionary.cを書いていく(あとMakefileも手を加えて良い、とのこと)。

  • dictionary.h.: Declared in that file are four functions
  • dictionary.c.: Notice that we’ve implemented those four functions, but only barely, just enough for this code to compile

解説にHash tableとTriesの両方があったもんで、組み合わせて使うのかと思っていたら...好きな方を選んで良いっぽい。ネットの海から最適なhash functionを探してもいい(そして、簡単に見つけてしまった)のだけど、他人の書いたものを利用する為に時間を掛けるよりも、今は1から自分で組み立てたいな...という理由で。Triesを利用することに決めた。

調べ物たち
①ヘッダファイルの構造
もう一度基礎からC言語 第14回 ヘッダファイルとプリプロセッサ指令 ヘッダファイルとプリプロセッサ
ifndef

②getrusage
getrusage - システムコールの説明 - Linux コマンド集 一覧表
実行時間の測定 - フリーフォーム フリークアウト(これが一番わかりやすいかな)

③ちょっとした表記の仕方
msmori: ?:(クエスチョン、コロン)の3項演算

③基本的だがfor文

④バックスラッシュの使い方
特殊文字(エスケープシーケンス) - 文字と数値 - C言語 入門

標準ライブラリ関数ferror

⑥manてひとじゃなく、マニュアルだったのか…
基本的なUNIXコマンド
ターミナルにman getrusageて入力するのその説明が出てくるなんて…!(今更感動)
ちなみにemacsにはmanぽいことをするwomanていうのもある、ようだ。ふざけてていいね。

おまけ
・alphanumeric: アルファベットと数字を組み合わせた、の意。
c言語でstring (char array)を作る時、最後に\0入れるの?
→Zamylaによると、入れる。