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

練習 4(提出プログラム名:p1104a.c)

練習 3 で作成したプログラム(p1103a.c)を p1104a.c という別名のファイルにコピーしなさい.
そして,p1104a.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の結果が練習 3 と同じになっている(逆順になっていない).
インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).


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