練習 [10] 文字列(2/5)

練習 2(提出プログラム名:p1002.c)

サンプルプログラム 2 (sample2.c)p1002.c という別の名前のファイルにコピーしなさい.そして,p1002.c を以下の指示に従って編集実行例のように実行できるプログラムを作りなさい.

この問題ではサンプルプログラム2 と同様にログインID を読み込んで char 配列へ格納した後,その ID の中で 0 (ゼロ)または 1 (イチ)となっている部分を * (半角のアスタリスク)に書き換えて出力させている.
サンプルプログラムにおける for 文の内容を書き換えなさいというのがこの問題の趣旨である.)

【補足事項】
この問題に限っては,配列の長さをマクロで指定しなくてもよいものとする.

【ヒント】
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 上でインデントを自動で揃える作業をやっていない).


ミスが無いことを確認したら次の問題へ → [ 練習3 (p1003.c) ]