今日出たエラーについてメモ。
出たエラー
ポインタと整数の比較を行なっています[デフォルトで有効]
if (letter == "c") count++;
^
(注:letterはchar型変数)
解決
文字をくくるのはシングルクォーテーションという決まりがある。
C言語では、文字と文字列は別物として扱われています。
文字は半角英数字ひとつ、文字列は文字が複数集まったものです。
(半角の記号ひとつも文字です)
日本語などの全角文字は、一文字だけでも文字列として扱われます。
そして、文字はシングルクォーテーション、文字列はダブルクォーテーションで括る、というのがルールです。半角英数文字ひとつだけでも、それをダブルクォーテーションで括ると文字ではなく文字列として扱われます。
反対に、文字列をシングルクォーテーションで括るとそれはエラーとなります。
つまり
if (letter == "c") count++;
ではなく
if (letter == 'c') count++;
とすれば動作する。
補足
ファイルから1文字だけ読み取りたいときにはfgetcが使える。