Cita: ...pero sinceramente no entiendo porque es necesario (si lo es, como te digo no lo probe) el paso intermedio a las variables "p1, p2, p3, p4"...
En necesario si quieres verificar que los parametros esten en el rango aceptado por char (busca la ayuda), si no es asi entonces puedes hacer directamente la asignacion :
De nada