prints the last character read on the current line.
That's what you are seeing.
moves the cursor to the start of a new line, and then prints the last character read.
That's what you were seeing before you commented this code out. Nothing strange about it at all.
is adding the last character read to the end of the String stored in readString.
The desired string is output to the serial port in the "Serial.print(c);" action
The "string" is output as a series of characters. The string is stored in readString, as a string.
I'm tinkering with the below ethernet sketch and desire to capture the "get" request string
You are doing that, in readString.