練習 3(提出プログラム名:p1203a.c)
まず,このプログラム(p1203a.c)をダウンロードしなさい.
そして,p1203a.c を以下の仕様を満たすように編集しなさい.
【目的の処理】
(1)コピー元のファイルの内容をコピー先のファイルへ書き込む際,
文字をすべて大文字にして書き込むこと.
(2)コピーした文字数を画面に出力すること.
ここでは空白文字や改行文字等もすべて数に入れてよい.
つまり,単純に fputc の実行回数を出力すればよい.
【注意】
既に存在しているファイルの名前をコピー先に指定してしまうと,fopen を行った時点でそれまでの内容は消えてしまう(ゴミ箱にも残らない)のでファイル名の誤入力には注意せよ.
【ありがちなミス】
コピー元の文字が c という変数に入っているとき
toupper(c);
と書けば c が大文字に変わると勘違いする人がたまにいますが c を大文字に書き換えたいのであれば
c = toupper(c);
と代入しなければなりません.
また,toupper で変換できるのは 1 文字だけなのに,文字列をまとめて変換できると勘違いする人もいます.必ず 1 文字ずつの処理が必要です.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
入力に使用しているファイル(sample1203a1.c)はこちら
※文字数を出力し忘れていないか確認せよ.
あわせて,aaa.c へ適切に書き込まれているか内容も必ず確認せよ.
コピー元のファイル名を入力してください:sample1203a1.c コピー先のファイル名を入力してください:aaa.c aaa.c に sample1203a1.c の内容をすべて大文字にしてコピーしました(501文字)⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
入力に使用しているファイル(sample1203a2.c)はこちら
コピー元のファイル名を入力してください:sample1203a2.c コピー先のファイル名を入力してください:bbb.c bbb.c に sample1203a2.c の内容をすべて大文字にしてコピーしました(332文字)⏎
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 2 種類の実行例を確認せずに提出してしまっている.
例えば,コピーした文字数が違っている.
■ 上のヒントを見落としていて toupper の使い方を間違っている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習 2 (p1202a.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習 4 (p1204a.c) ]