Arduino Code - Code will not compile
toLowerCase() function converts the object being called on to lower case. It doesn't return anything.  So what you probably want to do is:

String input = "Hello World";
String message = input;
message.toLowerCase();


This explains the error: you put a void, a nothing, in the variable message. This is not an unreasonable error to make, according to the documentation:


  Get a lower-case version of a String. As of 1.0, toLowerCase() modifies the string in place rather than returning a new one. 


So the toLowerCase() function used to return a lower-cased version of the string. Now it just modifies the string being called on, and not return anything.

Now, at line 37:

for(int i = 0; i &lt;= message.length(); i++) {


You expect message to be a String, as you call the length method. Now, the compiler attempts to convert the void in message to a String, but that's not possible. Therefore, you get an error.

P.S. As a general rule, here's my personal process for debugging these sorts of errors:


Look at the line where the error occurs
Check the documentation for all the functions used on that line (in this case here)
If that doesn't solve it, double-check my assumptions about the language syntax based on the error message.