somewhat simpler:

=SUBSTITUTE(A1;MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100);"")&MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100)

You can see, the formula consists of 2 parts:

=SUBSTITUTE(A1;MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100);"")

&MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100)

with
MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100))
we get the positon of the last space in the string in A1

with
MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100)
we get the last word (after the last space in the string in A1)

with
=SUBSTITUTE(A1;MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100);"")
we remove that last word from the whole string in A1

to the resulting string we add the last word in string A1
&MID(A1;MAX((MID(A1;ROW(1:100);1)=" ")*ROW(1:100));100)

Since this formula will be treated as an array formula, every character in the string in A1 can be evaluated using
MID(A1;ROW(1:100);1)