En C, las "cadenas" son simplemente charmatrices simples . Por lo tanto, no puede concatenarlos directamente con otras "cadenas".
Puede usar la strcatfunción, que agrega la cadena apuntada por srcal final de la cadena apuntada por dest:
char *strcat(char *dest, const char *src);
Aquí hay un ejemplo de cplusplus.com :
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
Para el primer parámetro, debe proporcionar el búfer de destino en sí. El búfer de destino debe ser un búfer de matriz de caracteres. P.ej:char buffer[1024];
Asegúrese de que el primer parámetro tenga suficiente espacio para almacenar lo que está intentando copiar. Si está disponible para usted, es más seguro usar funciones como: strcpy_sy strcat_sdonde tiene que especificar explícitamente el tamaño del búfer de destino.
Nota : Un literal de cadena no se puede usar como un búfer, ya que es una constante. Por lo tanto, siempre debe asignar una matriz de caracteres para el búfer.
El valor de retorno de strcatsimplemente se puede ignorar, simplemente devuelve el mismo puntero que se pasó como primer argumento. Está ahí para su comodidad y le permite encadenar las llamadas en una sola línea de código:
strcat(strcat(str, foo), bar);
Entonces su problema podría resolverse de la siguiente manera:
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);