how can the sbuf register be told to send a string that is received?
main() isn't an arreay either, but maybe I can try with [] to get an application suitable for an array processor...
You have already received an answer that says that since SBUF is not an array, you must write a function that iterates through all characters in a string and emits them one-by-one (by first checking if the UART is empty before you write the next character to the SBUF (write-mapped) register).
That same post also said that you - for input - will have to write a function that reads characters one-by-one from the SBUF (read-mapped) register.
No post has invalidated that comment - because it is correct. So you can not just assume that creative use of [ and ] will allow you to perform miracles no one else has managed. SBUF is hardware, and if the hardware SBUF is a single character large, then it doesn't matter how much you try to play around with the compiler. Your hardware will not suddenly grow an array-compatible version of SBUF.