concatenar cadenas

utikitak
03 de Mayo del 2004
Para concatenar dos cadenas estoy utilizando strcat pero esta dentro de un bucle y no se que hace porque a la siguiente iteracion en una de las dos variables que concateno se me guarda un valor y no se porque porque las inicializo a 0 en cada iteracion.¿hay alguna otra forma de concatenar cadenas?

La verdad que me evitaria el concatenarlas si puedo coger de un fichero dos palabras separadas por un espacio.

Gracias.

chuidiang
03 de Mayo del 2004
Lo del string esta bien siempre que trabajes en C++ y tengas esa clase string (que antes al menos no venia en todos los compiladores de C++).

En C tienes varias opciones:

Puedes leer de fichero con fgets(). Esta funcion coge una linea completa, tenga o no espacios.

Para concatenar puedes hacerlo, pero tienes que tener el espacio de la cadena previamente reservado.

char cadenaTotal [100]; /* Espacio suficiente para el total */
char cadena1[50];
char cadena2[50];

lees cadena1 y cadena2 del fichero o de donde sea

strcpy (cadenaTotal, cadena1); /* copias la primera cadena */
strcat (cadenaTotal, " "); /* el espacio */
strcat (cadenaTotal, cadena2); /* añades la segunda */

Otra opción, teniendo igualmente el espacio reservado, es usar sprintf (). Funciona igual que printf(), pero mete el resultado en una cadena en vez de en pantalla

sprintf (cadenaTotal, "%s %s", cadena1, cadena2);

Espero que te sirva.

Se bueno.

dvaccaro
03 de Mayo del 2004
Porque no publicas el codigo ?