2001 年度「計算機基礎論3B」 2001-12-18

演習(の一例)

switchdo ... while ループ

「選んでください A) ああたら B) こうたら C) なんたら」 を見たユーザが A, B, C などを入力するとそれに応じて 「あなたは『ああたら』を選びました』などと出力するプログラムを書け。

分岐には switch を、ループには do ... while を使ってみよ。 ユーザは小文字で入力するかも知れない。 その場合は対応する大文字が入力されたものとせよ。 選択肢にない文字を入力したときは入力し直させること。

reverse() の(いわゆる)日本語版

教科書 76 ページの関数 reverse() の、 (いわゆる)日本語対応版を書いてみよ。

WS で使われている日本語コードであるところの EUC コードでは、 (いわゆる)日本語の文字は隣りあった二バイトで表される。 そして、それらのバイトは「最上位ビットが 1 である」ことで特徴づけられる。

文字AB
コードA4A241A4A442

教科書の reverse() で反転させると次のようになる。

文字BA
コード42A4A441A2A4

「あ」は一バイト目と二バイト目が逆になったため 「△」になってしまった。これではうまくない。

10 月 26 日分のページで使った rev.c はまだ習っていないポインタを使っているが、 アイディアは参考になるかもしれない。


岩瀬順一