Char initialized as concatenation of String +String variables generates error

I was not able to get done what I wanted with strcat or strncat. I could not find a way to concatenate char and Strings using these functions because they require the source and destination to be of type char and I could not figure out how to change a char to a String or vice versa. Very confusing. Then I found the toCharArray() method. It turned out to be the problem solver.

#include <ESP8266WiFi.h>

char client_id[15];

createClientId();

void createClientId(){
  strcat(client_id,"ESP8266-");
  char temp[3];
  WiFi.macAddress().substring(9,11).toCharArray(temp,3);
  strcat(client_id,temp);
  WiFi.macAddress().substring(12,14).toCharArray(temp,3);
  strcat(client_id,temp);
  WiFi.macAddress().substring(15).toCharArray(temp,3);
  strcat(client_id,temp);
}

Any suggestions to clean up/shorten, correct mistakes in this noobie code welcomed! Thanks again for the help everyone.