char aStr[200]; // Room for 200 char string. (You can make it whatever fits plus some.)
strcpy(aStr,link); // Load in first bit. strcpy() copies to START of string.
strcat(aStr,KEY); // Next bit strcat() copies to the END of a string. Adding more to it.
strcat(aStr,"/door/"); // Next bit
strcat(aStr, DOOR); // Next bit
And no, with c strings you need to convert things into chars first. All your stuff here was already chars.