「選んでください A) ああたら B) こうたら C) なんたら」 を見たユーザが A, B, C などを入力するとそれに応じて 「あなたは『ああたら』を選びました』などと出力するプログラムを書け。
分岐には switch を、ループには do ... while を使ってみよ。 ユーザは小文字で入力するかも知れない。 その場合は対応する大文字が入力されたものとせよ。 選択肢にない文字を入力したときは入力し直させること。
教科書 76 ページの関数 reverse() の、 (いわゆる)日本語対応版を書いてみよ。
WS で使われている日本語コードであるところの EUC コードでは、 (いわゆる)日本語の文字は隣りあった二バイトで表される。 そして、それらのバイトは「最上位ビットが 1 である」ことで特徴づけられる。
文字 | あ | A | い | B | ||
---|---|---|---|---|---|---|
コード | A4 | A2 | 41 | A4 | A4 | 42 |
教科書の reverse() で反転させると次のようになる。
文字 | B | い | A | △ | ||
---|---|---|---|---|---|---|
コード | 42 | A4 | A4 | 41 | A2 | A4 |
「あ」は一バイト目と二バイト目が逆になったため 「△」になってしまった。これではうまくない。
10 月 26 日分のページで使った rev.c はまだ習っていないポインタを使っているが、 アイディアは参考になるかもしれない。