Concatenate 5 string at once

Good afternoon

Unfortunately, it seems that yerterday I missed something... because I still don't get the correct string

char StringFinal[40];
char * sHH;
char * sMM;
char * sSS;

sHH="21";
sMM="43";
sSS="01";

//CONCATENA 5 STRINGS
char *concatena5(char *string1, char *string2, char *string3, char *string4, char *string5) {

strcpy(StringFinal, string1);
strcat(StringFinal, string2);
strcat(StringFinal, string3);
strcat(StringFinal, string4);
strcat(StringFinal, string5);
return(StringFinal);
}

//Function to write on LCD
void Escreve_LCD2(char *sTexto){
lcd.cursorTo(2,1);
lcd.printIn(sTexto)
}

//call function to write the string on LCD
Escreve_LCD2(concatena5(sHH,":",sMM,":",sSS));

When I do:
(...)
Serial.println(StringFinal);
Serial.println(string5);
strcat(StringFinal, string5);
return(StringFinal);
}

I have on serial:
Printing "StringFinal"
21:43:
Printing "string5"
21:43:

I don't know what happen to "01" !!! and the function "concatena5" it seems that return an empty string!!!

I don't get the problem!

I'll appreciate your help once again
Thanks on advance
Best regards

Pedro Ferrer