Problem in the sketch example StringCharacters

I am a beginner learning Arduino programming. When I run the sketch StringCharacters on my Arduino MEGE 2560, I cannot get expected result. Does anyone have the same problem?

The sketch is copied and pasted as follows.

  String charAt() and setCharAt()

 Examples of how to get and set characters of a String

 created 27 July 2010
 modified 2 Apr 2012
 by Tom Igoe

 This example code is in the public domain.

void setup() {
  // Open serial communications and wait for port to open:
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only

  Serial.println("\n\nString  charAt() and setCharAt():");

void loop() {
  // make a string to report a sensor reading:
  String reportString = "SensorReading: 456";

  // the reading's most significant digit is at position 15 in the reportString:
  char mostSignificantDigit = reportString.charAt(15);
  Serial.println("Most significant digit of the sensor reading is: " + mostSignificantDigit);

  // add blank space:

  // you can alo set the character of a string. Change the : to a = character
  reportString.setCharAt(13, '='); 

  // do nothing while true:

What I get in the serial port output is:

String  charAt() and setCharAt():

SensorReading: 456
String  charAt() and setCharAt():

SensorReading= 456

The string "Most significant digit of the sensor reading is: 4" is missing.

It works if written like this:

String ttt ="Most significant digit of the sensor reading is: ";
Serial.println( ttt+ mostSignificantDigit);

The question is: why does the previous one fail?

Hi. The tutorial is wrong. You need to cast the const char * "something" into a string so the correct syntax is

Serial.println(String("Most significant digit of the sensor reading is: ") + mostSignificantDigit);

I will correct the online tutorial. Thank you!

Great to know it. Thank you for the reply!

I corrected it as you suggested for sake of simplicity. thank you!