アスキーコードへの変換

a を 0、b を 1、c を 2、、、z を 25 というふうに各アルファベットに対応した番号を割り当てることができれば、サイズが 26 である整数型の配列をカウンタとすることができます。

アルファベットの a 〜 z には連続したアスキーコードが割り当てられているので、文字から 'a' を引くと対応した番号が得られます。

たとえば、以下のようにして数えることができます:

int num = ch - 'a';  // 文字 ch の番号
counter[num]++;      // num の個数を数える

EOFまでの読み込み

ファイルの終端を表す特殊な記号やデータをEOF (End Of File)と呼びます。 入力をEOFまで行うためには、以下のように記述します:

/* C */
char ch;

while ( scanf("%c", &ch) != EOF ){
    /* 処理 */ 

}
// C++
char ch;

while ( cin >> ch ){
    // 処理

}

Reference

 

オンラインジャッジではじめるC/C++プログラミング入門 (マイナビ)

AIZU ONLINE JUDGE のコース問題を題材にした解説書です。各トピックごとに C/C++ 言語の基礎的な内容を学習し、Introduction to Programming の演習問題にチャレンジしていきます。内容は敷居の高いものではなく、プログラミング初学者が取り組む例題からスタートしています。