課題 [12] ポインタ②(3/9)

問 3(提出プログラム名:ex1203.c)

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

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

【注意】
関数 main の内容は一切書き換えないこと.
この問題は文字列を扱う問題なので,問2(ex1202)とは異なり,文字列の末尾はナル文字かどうかで決まる.繰り返しの条件を間違えないようにSIZE まで繰り返すという問題ではない).

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

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


以上の 3 問は明日(7/12)の 16時までに提出を済ませてください.
(ex1201.c ~ ex1203.c を Moodle から提出してください.)
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.なお,コンパイルエラーや無限ループが含まれる場合は総合評価を 0 点とします.
提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.


次のページ以降に問 4 ~問 9 があります.
問 4 以降を明日の16時までに早期提出した場合は加点の対象とします
(一部のみを早期提出してもよいです).
※なお,明らかに間違っている(まともに動かない)プログラムを早期提出するのは絶対にやめてください.不正に加点を得ようとした行為と見なして減点とします.

次の問題へ → [ 問4 (ex1204.c) ]