文字列合体!(+現在時刻の表示)
こんにちは、じゃた。です。課題シリーズ第4弾です。今回は文字列をがっちゃんこするプログラムです。
今回のプログラムについて
入力された2つの文字列を合体させます。また、今回の条件は以下の通りです。
1. xの後ろにyを繋ぐ関数を作成する
2. 1.の関数について、x, yを引数とする
3. 1.の関数について、引数は明示的にポインタにする
4. string.h をインクルードしない
5. NULL文字、添え字演算子を必ず使用する
プログラム
こんな感じで書いてみました。
ちなみに、前回はwhileで無限ループするようにして、ifで条件が一致したらbreakで出るようにしてたんですが、そもそもwhileで条件書けばよかったと今更気が付きました…。
20行目から24行目について、少しコメントしておきます。今回文字列xには、文字列yのNULL文字までコピーするわけですが、
while(y[m] != ‘\0’)
とするとNULLまでコピーされません。では、
while(y[m-1] != ‘\0’)
とするとどうでしょう。まあ、上手くいきません。そもそも y[-1] にアクセスしようとするのは危険な気がします…。ただこの場合、一番最初の処理以外は上手くいくはずなんですよね。一番最初だって、一度while文の中身の処理を行ってから判定してくれれば、上手くいくはずです。こんな時の為に用意されたものがありましたよね。さあ、今こそお前の出番だ!do while!!
おまけ
文字列結合って、どんな時に使うのかなって少し調べてみたら、どうやら音声応答を自動で割り出す時なんかに応用できるらしいですね。ということで、せっかくなので動かしたら現在時刻の読み上げを行う、はちょっと勉強しないとできないので、すぐできそうな現在時刻の表示をやってみました。
「ただいま午後6時10分52秒です。」みたいな感じで表示されます。汚いプログラムですが、そこはプログラム初心者(?)ということで、許してください。
おわりに
最後まで見てくれてありがとうございます!See You Next Time!
コメント入力