>>682
strcat(str1, str2) はstr1のうしろにstr2をくっつけたものをstr1にいれる

二つ目のstrlen(str1) + 1 は(str1にある文字列の長さ) + (ヌル文字)を表わしてて、
sizeof(str1)から引くことで、まだ使用されてない配列サイズを計算してるんだろう。

どちらのコードも少しおかしい気はするが。。。
(str2が二つあったり、初期化してなかったり)