練習 [12] ポインタ②(5/5)

練習 5(提出プログラム名:p1205.c)※必須ではない

この練習問題は必須ではない(提出しなくてもよい)が適切に解けていれば加点の対象とする.

練習 4 で作成したプログラム(p1204.c)を p1205.c という別名のファイルにコピーしなさい.
そして,p1205.c を編集して,英単語を末尾ではなく先頭へ挿入するかたちで出力できる(実行例を参照)プログラムに変更しなさい.

【ヒント】
目的の動作を実現する方法はいくつかありますが,例えば次の方法があります.
ここでは最終的に出力する文字列(char 配列)を str とし,毎回新たに読み込む文字列(char 配列)を word として説明します:
 まず,str の初期値は "|" としておきます( strcpy(str, "|"); ).
 後は(繰り返しの中で)新たな英単語を word として読み込むたびに次の①~③を行います.
  ①いったん strcat を使って word の後ろに(その時点の)str の内容を追加します.
  ②次に,strcpy を使って str の内容を "|" だけで上書きします.
  ③そして,strcat を使って str の後ろに word の内容を追加します.

  • 【プログラムの実行例】(その1)赤字は実行時にキーボードから入力する内容
単語を 1 つ入力してください:ehime
単語を 1 つ入力してください:university
単語を 1 つ入力してください:computer
単語を 1 つ入力してください:science
単語を 1 つ入力してください:end
str = |science|computer|university|ehime|
  • 【プログラムの実行例】(その2)赤字は実行時にキーボードから入力する内容
単語を 1 つ入力してください:ehime
単語を 1 つ入力してください:end
str = |ehime|

【過去にあったミス(減点となり,やり直しを命じられる)】
2 種類の実行例を確認せずに提出してしまっている.
 (例1)先頭や末尾に "|" が書かれていない.
 (例2)実行例1の結果が練習 4 と同じになっている(逆順になっていない).
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


第 12 回(Cプログラミング;3 限目の方)の練習問題は以上の5問です.
p1201.c ~ p1205.c を Moodle から提出してください.※ただし,p1205.c は必須ではないです.
くれぐれも各問題で記載されている注意事項や「過去にあったミス」を見落とさないようにしてください.
なお,コンパイルエラーや無限ループになるプログラムを 1 個でも提出した場合は総合評価を 0 点とするので十分に注意すること.
なお,提出後に間違いに気付いた場合,〆切前であれば差し替え(上書き)は可能です.