本日の実習課題
2010.4.26
教科書のp.14の例題2.4では文字コードを入力するとその文字を表示するプログ ラムが紹介されていましたが,逆に,文字を入れると文字コードを表示してくれ るプログラムを作成しましょう.
printf で %10d のように表示桁数を指定すると右揃えで出 力されます.文字列など左揃えで表現したい場合には桁数の部分にマイナ ス記号をつけます.例えば, %-10d のようにすると左揃えにな ります.これを使って下に示すような出力を行なうプログラムを作成して ください.数値は scanf で取り込まなくてもソースの中に入れ ておけばそれで構いません.
English Physics Chemistry Edward 78 100 85 Alphonse 90 80 95 ---------+---------+---------+---------+ |
文字列を変数に入れることは実はC言語ではできなくて授業の後半で扱う「配列」 や,さらにこの授業の範囲外になりますが,「ポインタ」を使用することになりま す.今の段階ではおまじないだと思って,以下のような型定義と「代入」を行っ ておいてください.
char *ed, *al, *en, *ph, *ch, *s; ed = "Edward"; al = "Alphonse"; en = "English"; ph = "Physics"; ch = "Chemistry"; s = "";
printf で文字列を出力するときに最後に必ず \n を付けて います.これは「改行文字」と言い,これがあると出力を改行します.他 にも, \t のTABや \b のバックスラッシュ(1文字削除), \r のリターン(行の先頭に移動)など,いろいろな種類の物があ ります.そのため,バックスラッシュや書式指定のために使用する %d などはそのままでは画面に出力できません.
どうすれば出力できるか,というと,記号のバックスラッシュで次に続く文字の 意味を打ち消す作業を行うことになります.言い替えると, \n は本来の文字 n ではなく,違う意味で使用する(newline)ことを バックスラッシュで表現していることになります.そこで,通常は出力さ れない文字の場合,バックスラッシュを使って出力できます.また, % についてはそれだけならば出力できますが, %d のよう に意味のある並びになると,出力できなくなります.どうすれば出力でき るのでしょうか.方法を考えて,以下の例の ように出力するプログラムを作成してください.
\n newline \b backslash " double quote %d decimal %x hexdecimal |
授業の後半で,本日の課題の提出練習を行いますので,アナウンスに注意してく ださい.