課題 [11] ポインタ②(2/9)

問 2(提出プログラム名:ex1102a.c)

このプログラム(ex1102a.c)をダウンロードし,その中の関数 mask_upper を完成させなさい

関数 mask_upper は,引数で与えられたポインタ p を用い,そのポインタ p が参照している文字列(char 配列)の中のアルファベット大文字を '*' で上書きするものとする.
ただし,その他の文字はそのままとする.

【注意】
関数 main の内容は一切書き換えないこと.

【注意すべきこと】
この問題は文字列を扱う問題ですので,問1(ex1101a)とは異なり,文字列の末尾はナル文字かどうかで決まります.繰り返しの条件を間違えないようにしてください(SIZE まで繰り返すという問題ではありません).

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
英単語を入力してください:EhimeUniv
大文字は * に書き換えました
*hime*niv
  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
英単語を入力してください:sample
大文字は * に書き換えました
sample
  • 【プログラムの実行結果】(その3)赤字は実行時にキーボードから入力する内容
英単語を入力してください:GPA
大文字は * に書き換えました
***

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
 例えば,大文字ではなく小文字* に置き換えられていたり,*個数が違っていたりする.
■ 大文字かどうかの判定で使う関数 isupper の使い方を間違えている(以前にも説明したように == 1 を付けて書くのは誤りです).
注意書きを見落としていて main 関数の中身を書き換えてしまっている.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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