Hallo

*s++
sind eigentlich zwei Befehle!
*s und s++
Es wird also das Zeichen auf welches s zeigt geholt und danach wird s um eins erhöht.

Da s erhöht wird, wird auch der String immer kürzer.
Sagen wir mal im Speicher liegt folgendes
'A','B','C','D',0
Dann zeigt s auf 'A' und der string ist 4 zeichen lang (0 markiert das Ende).
Nach s++ zeigt s auf 'B', der String ist jetzt nur noch 3 Zeichen lang ...

const char* s
bedeutet, dass s auf einen Speicherbereich zeigt, welcher nicht beschrieben werden kann.
s darf aber verändert werden.

const char* const s
dann wäre auch s gegen Veränderung geschützt und der Compiler könnte optimieren. Aber dann geht s++ nicht mehr .....

Da aber ein String in C mit einem 0 am Ende markiert ist, was auch StrLen() so auswertet, kann man das Ganze viel einfacher schreiben.
Code:
/*----------------------------------------------*/
void LcdWriteStr(const char* s)
{ 
  while (*s)
    {
      LcdWriteChar(*s++);
    }
}
/*----------------------------------------------*/
MfG Peter(TOO)