Ich hab mal kurz in den Code reingeguckt.
Die Zeit Senderoutine läuft ja, wie Du sagst.
Die String Empfangsroutine müsste auch funktionieren.
Ich denke, dein Verständnis Problem sind die Strings und die Variablen.
Ein String ist eine Kette auch Zeichen wie "Hallo Welt".
Eine Variable ist eine Zah mit der man rechnen kann z.B. 1234.
In deinem empfangenen String sind nun Zahlenwerte enthalten, die du wieder in echte Variablen zurückverwandeln willst.
Dazu gibt es in C die Funktion atoi ("String",variable);
Da dort aber auch trenner wie z.B. der : in dem String sind, musst Du zuerst die Zahlenwerte rausfiltern und in einem eigenen String unterbringen.
18:33:15<CR><LF> wird dazu in die Einzelstrings stundestr[3], minutestr[3], sekundestr[3] aufgeteilt. der Inhalt von stundestr ist "18" und 0 als endekenner.
nun kannst Du den string stundestr in die variable stunde mit atoi wandeln lassen.
Das Ergebnis kann dann in deine Uhr direkt übertragen werden, weil es ja nun wieder eine Zahl ist.
Für eine konkrete Funktionsbeschreibung müsste man den Code komplett durcharbeiten, aber das solltest Du mal selber tun, Du willst ja auch was lernen dabei. Hoffe Ich!
Lesezeichen