char to String conversion in Arduino program
this isn't an arduino specific error what you're trying to do is declare and initialize the variable in one statement which is causing the problem. As you've figured it out already. Declaring the variable first

String s;



and initializing it another statement does the job for you

s=blabla


Hope this helps. PS, try posting the error that you get during build process next time :)

EDIT:
 I think this needs more explanation. Basically why you cant declare and initialize at the same time in this case is because Serial.read is a synchronous request. Declaring an object requires acquiring the space for it, running any constructors and whatsoever, and doing while Serial.read() is an IO blocking operation. You could declare and initialize a String class variable given it was a string constant but not with anything like get_input or Serial.read

EDIT 2:
Further here's what I've found for you. 

http://www.cplusplus.com/reference/string/string/string/

Apparently the  String class has a copy constructor which means when declaring the variable you initialize at the same time it uses the copy constructor, and which requires ADDRESS to a valid string(know that you can use a constant because C++ deals with all strings as the address to their first char). In your case the constructor raised an error because you pointed it to an undefined(Serial.read() ). 

String mystring=Serial.read(); //error, uses copy constructor


However this would work

String mystring="hey juliet!" ; //uses the copy contructor which takes address to a char



Doing the same thing in two different lines works for the same reasons, it uses a different constructor

String mystring; //uses empty string constructor - okay so far
mystring=Serial.read(); // uses the overloaded = operator  --okay