練習 3(提出プログラム名:p1203.c)
まず,このプログラム(p1203.c)をダウンロードしなさい.
p1203.c ではサンプルプログラム3(sample3.c)を次のように編集しようとしている途中のもの(未完成)となっている:
関数 string_copy に第 3 の引数 n(int 型)を追加している.
新しい string_copy では,先頭から n 文字だけはそのままコピーするが,
残りの文字については * をコピーするようにしたい.
(n は 1 以上であり,なおかつコピー元の文字数以下であると仮定してよい)
関数 string_copy を完成させなさい.
なお,string_copy の中ではサンプルプログラム 3 と同じく while 文を使っているが,これを for 文で書き換えてもよいものとする.(どちらで書いても正解とみなす)
【注意】
● 関数 main の内容を書き換えてはいけません.
● 関数 string_copy の戻り値型や引数を変更してはいけません.
【特に注意すべきこと】
コピー先の char 配列 to へすべての文字を代入した後には,文字列の終端を表すナル文字('\0')も書き込む必要がありますので忘れないよう(間違えて to[i] = '\0'; を消さないよう)に注意しましょう.
- 【プログラムの実行例】(その1)※赤字は実行時にキーボードから入力する内容
文字列(空白無し)を 1 つ入力してください:programming 先頭から何文字をそのままコピーしますか:5 コピーした文字列:<progr******>⏎
- 【プログラムの実行例】(その2)※赤字は実行時にキーボードから入力する内容
文字列(空白無し)を 1 つ入力してください:sample 先頭から何文字をそのままコピーしますか:6 コピーした文字列:<sample>⏎
- 【プログラムの実行例】(その3)※赤字は実行時にキーボードから入力する内容
文字列(空白無し)を 1 つ入力してください:aaaa 先頭から何文字をそのままコピーしますか:1 コピーした文字列:<a***>⏎
【過去にあったミス(減点となり,やり直しを命じられる)】
■ 3 種類の実行例を確認せずに提出してしまっている.
■ コピー先の char 配列へナル文字('\0')を書き損ねていて,文字列表示の末尾が文字化けしている.
■ インデントに不備がある(VSCode 上でインデントを自動で揃える作業をやっていない).
← [ 練習 2 (p1202.c) ]
ミスが無いことを確認したら次の問題へ → [ 練習 4 (p1204.c) ]