En C, las "cadenas" son simplemente char
matrices simples . Por lo tanto, no puede concatenarlos directamente con otras "cadenas".
Puede usar la strcat
función, que agrega la cadena apuntada por src
al 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_s
y strcat_s
donde 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 strcat
simplemente 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);