練習 [9] 文字列(1/5)

練習 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) ]