#include <stdio.h>
#include <string.h>
void mystrcat(char *to, char *from);
int main(void)
{
char str[80];
strcpy(str, "最初の部分");
mystrcat(str, " 2番目の部分");
printf(str);
return 0;
}

void mystrcat(char *to, char *from)
{
while(*to) to++;
  while(*from) *to++ = *from++;
  while(*from) *to++ = *from++; /*もう一回追加*/

*to = '\0';
}

mystrcpyを2回fromのやつを結合するって作り変えようとしたけど結果は2回結合しない。
原因はなんなんでしょうか?
一回くっつけると*fromの中は空っぽになるの?