Simple solution comes to
char dataStream[6];
sprintf(dataStream,"%c%02X%02X", data_start, data_high, data_low);
Where data_start is a const char defined as '*', and both data_high and data_low are defined as datatype byte. With these constraints the result of sprintf() will always be 5 chars, so defining dataStream as a 6 char long array dataStream[6] should never changed from the default NULL to provide a properly null-terminated char array (i.e. a string with lower-case "s").