Printing variable on arduino LCD screen?

I am using the serial monitor to type a word and it will (in theory) be displayed on my LCD. The problem is, the word is flashing one letter at a time on the first cursor spot (0,0) like a slide show. The code is as shown:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

Serial.begin(9600);
}

void loop() {
while(Serial.available() == 0);
char dMes = Serial.read();
lcd.clear();
lcd.begin(16,2);
lcd.setCursor(0, 0);
lcd.print(dMes);
delay(1000);

}

Any help to display the whole word would be great.

try like this:

make myString global

void loop() 
{
  while (Serial.available())
  {
    char newChar = Serial.read();
    myString = myString + newChar; 
  }
  if (myString != "")
  {
    Serial.print(myString);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(myString);
    myString = "";
    //delay(1000);//you probably don't need this  it will only update with a new message
  }
}

edit: added toggle and deleted lcd.begin...

  delay(1000);

Are the screen updates about one second apart?

Please remember to use code tags when posting code.

Remove the line:

lcd.begin(16,2);

from the loop() function and add it to the setup() function.

Take note of the comments from others but I think that you misunderstand how Serial.read() works.

Serial.read() reads one character from the serial interface into the specified variable. So your program waits until at least one character is available, reads it, clears the LCD and initialises the LCD, both of which position the LCD cursor to 0,0, then you position the cursor to 0,0 again and display the first character read from serial. Then you wait 1 second before executing the same set of instructions over again including clearing the LCD and setting the cursor to 0,0 three times before displaying the next character available from serial.