練習 1(提出プログラム名:p0901a.c)
まず,このプログラム(p0901a.c)をダウンロードしなさい.
このプログラムでは Moodle のログインID を読み込み,
先頭の 3 文字だけはそのままで,残りの文字を *(半角のアスタリスク記号)で上書きして,
最後に書き換えた ID を出力するようになっている.
このプログラムを変更し,
ID の中で 0 (ゼロ)または 1 (イチ)となっている部分だけを *(半角のアスタリスク)に書き換えるようにしなさい.
【補足事項】
この問題に限っては,特別に配列の長さをマクロで指定しなくてもよいものとする.
【ヒント】
ID 内のある文字 id[i] が 0(ゼロ)かどうかは if ( id[i] == '0' ) でチェックできます.
数字の 0 との比較(id[i] == 0)ではなく,シングルクォーテーションで囲んだ ‘0’ という「文字」との比較になるところに注意してください.数字の 1 (イチ)についても同様です.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
ログイン ID を入力してください:k520987x k520987x ==> k52*987x⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
ログイン ID を入力してください:k520121z k520121z ==> k52**2*z⏎
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 2 種類の実行例を確認せずに提出してしまっている.
(例1)0 または 1 以外の部分も * になっている.
(例2)ナル文字も * で上書きしてしまって末尾で文字化けが起こっている.
■ ヒントを見落としていて,'0' や '1' との比較になっていない.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
ミスが無いことを確認したら次の問題へ → [ 練習2 (p0902a.c) ]