concatenar cadenas
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.
La verdad que me evitaria el concatenarlas si puedo coger de un fichero dos palabras separadas por un espacio.
Gracias.
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.
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.
