En comps:
Código
Pon paréntesis. Aunque pr sea falso y p[ i ] sea '\0', si p2[ i ] es diferente de '\0', seguirá en el bucle.
while (pr == true && p1[i] != '\0' || p2[i] != '\0' );
Código
while (pr == true && ( p1[i] != '\0' || p2[i] != '\0' ) );
En backslash:
Código
Entiendo que se trata de un error al copiarlo. Habrás querido decir b == 't'.