Folgende Variable sollte ein String sein, so wie du das gemacht hast ist das aber kein String, sondern ein einfaches char Feld!
unsigned char s[4] = "thze";

Strings werden mit einem Nullterminator beendet, also:
unsigned char s[5] = "thze\0";

Folgende Zeilen ergeben auch keinen Sinn, du würfelst da die Stellen wild durcheinander! Bei der Tausenderstelle würde ein '0' auch nicht schaden!
s[0]=huni+'0';
s[1]=zehner+'0';
s[2]=einer+'0';
s[3]=tausend;