Of 10 characters. The last element has to be null (0) to terminate the string.
The sprintf function writes the value of the integer named 'noofsteps' into the character variable named 'TopMessage'. I.e. take the integer value of 'noofsteps' (say, 14,351 steps for example) then write this to 'TopMessage' as a character string i.e. binary code for 1, binary code for 4, binary code for 3, binary code for 5, binary code for 1. Is that what's going on here?
From what I remember (I did a school project with it long ago), for 44780, the internal encoding is mostly just ASCII, so you can just clock the string out the data bus 1 byte at a time, and you'll get the right chars on the LCD.