Theresa May does not agree with Donald Trump's reported characterisation of nations in Africa as "s***hole countries", Downing Street said.

The US president, who has cancelled plans to visit Britain, was accused of being racist after questioning why his country should accept more immigrants from Haiti and "shithole countries" in Africa rather than places like Norway.

Sources said Mr Trump startled US legislators with his disparaging remarks during a meeting in the Oval Office at which he rejected a bipartisan immigration deal.

Mr Trump later said on Twitter that he had used "tough" language at the meeting but appeared to deny using the term which has triggered a wave of condemnation around the world.

A Downing Street spokesman said he would not comment on "alleged private remarks".

But asked if the Prime Minister viewed the countries Mr Trump was referring to as "s***holes", the spokesman replied: "No."

Donald Trump and Prime Minister Theresa May.
Donald Trump and Prime Minister Theresa May.

The alleged remarks were made at a meeting to discuss immigration policy and the future of the Obama-era programme called Deferred Action for Childhood Arrivals, or DACA.

Mr Trump said: "The language used by me at the DACA meeting was tough, but this was not the language used."

The United Nations human rights watchdog has condemned the alleged remarks as "racist".

Rupert Colville, a spokesman for the UN High Commissioner for Human Rights, said: "You cannot dismiss entire countries and continents as 's***holes'."