US President Donald Trump praised a man who punched a protester at a midterm election rally held in South Carolina.