問 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 上でインデントを自動で揃える作業をやっていない).
← [ 問 1 (ex1101a.c) ]
ミスが無いことを確認したら次の問題へ → [ 問3 (ex1103a.c) ]