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

問 8(提出プログラム名:ex1208.c)

このプログラム(ex1208.c)をダウンロードし,以下の動作をするプログラムに仕上げなさい
ただし,ダウンロードしたプログラムでは,手順(1)と(5)だけは実装済みとなっているので,
作成するのは手順(2),(3),(4)のみである.

【目的の処理内容】
(1)文字列を str として読み込む(実装済).
(2)str の内容を clone という別の char 配列へコピーする(strcpy を使ってよい).
(3)clone の内容のうち,アルファベットの大文字と小文字を入れ替える(書き換える).
  ※char 配列の内容を最後までチェックする必要はない.
   文字列なので先頭からナル文字までをチェックすれば十分である.
(4)clone の内容を str の末尾へ追加する(strcat を使ってよい).
(5)str の内容を出力する(実装済).

なお,このプログラムでは講義で紹介した strcpy, strcatisupper, toupper
自由に使って良いものとする.

  • 【プログラムの実行結果】(その1)赤字は実行時にキーボードから入力する内容
文字列を 1 つ入力してください:JanFeb
変換したものを後ろにつなげると: [JanFebjANfEB]

  • 【プログラムの実行結果】(その2)赤字は実行時にキーボードから入力する内容
文字列を 1 つ入力してください:ABCDE
変換したものを後ろにつなげると: [ABCDEabcde]

  • 【プログラムの実行結果】(その3)赤字は実行時にキーボードから入力する内容
文字列を 1 つ入力してください:Ehime123
変換したものを後ろにつなげると: [Ehime123eHIME123]

【過去にあったミス(実際に減点となり,やり直しを命じられた例)】
実行の画面出力が上の例と違うきちんと確認していない).
■ コピー元の str の内容について大文字と小文字を入れ替えてしまっている.
strcpy や strcat を使って良いのに対応する処理を自前で書こうとして無駄に複雑化している.
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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