#include <stdio.h>

void main(){
char str1[128],str2[128],*p_str1,*p_str2;

p_str1 = str1;
p_str2 = str2;

printf("1: "); scanf("%s",p_str1);
printf("2: "); scanf("%s",p_str2);

//文字列 str1 の終点のアドレスがポインタに代入された状態にする
for( ; *p_str1 != '\0' ; p_str1++ );
//連結
for( ; *p_str2 != '\0' ; *p_str1++ = *p_str2++ );
//p_str1 を出力 たぶんここが悪い
for( p_str1 = str1 ; *p_str1 != '\0' ; p_str1++ )
printf("%c",*p_str1);
printf("\n");
}

たぶん出力するところの条件がおかしいんだとは思うんですが。。。
色々考えてはみたものの結局答えは出ず。どなたかご教授願います