同じことやるんだったら、これだけで良くない? judgeは0で初期化。

while (*str1 == *str2 && *str1 != '\0') {*str1++; *str2++;}
if (*str1 == *str2) judge = 1;

そんなことより、この後printf("%s", str1) とすると、ポインタが動いてしまってるから
文字列が表示できないが、このポインタを元の位置に戻す方法は無いの?
どこか適当な変数にアドレス保持させておくか、*(str1 + i)みたいにするしか無い?
ポインタのインクリメントは使うメリットが良く解らない…