• Lunes 29 de Abril de 2024, 04:41

Autor Tema:  Concatenar Variables En C  (Leído 26316 veces)

sanosuke24

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Concatenar Variables En C
« en: Jueves 23 de Agosto de 2007, 16:23 »
0
Hola a todos, que hay? La verdad es que es la primera vez que escribo en este foro y tengo una duda acerca de un programa que estoy escribiendo en lenguaje C.

Resulta que tengo varias variables del tipo char que contienen datos referentes a direcciones de servidores ftp, nombres de usuario, etc. y lo que quiero es poder concatenar unas con otras. Un ejemplo que he usado es el siguiente:

Citar
char *cadena1 = "Esta es";
char *cadena2 = "una prueba";
char *cadena3 = "en lenguaje C";
char destino[30];

--> aqui iria la funcion main y gran parte del programa <--

strcpy(destino,cadena1);
strcat(destino,cadena2);
strcat(destino,cadena3);

printf("%s",destino);

Resulta que en ese ejemplo si que me las une, sin embargo cuando trato de adaptar este codigo a mi programa no hay manera de que lo consiga.
Las variables no han sido declaradas como en este ejemplo, si no que son datos que ha conseguido el programa leyendolos de archivos.

Creeis que puede tener algo que ver mi problema con la manera en como el programa consigue los datos?

 Gracias de antemano y un saludo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Concatenar Variables En C
« Respuesta #1 en: Jueves 23 de Agosto de 2007, 16:31 »
0
Con esos datos es muy dificil determinar cual es el problema, comproba que estas usando un buffer con suficiente espacio, que los datos que intentas copiar/concatenar no sean nulos, etc.

Lo mejor que podes hacer es ayudarte a vos mismo depurando el programa y viendo el estado de los buffers en cada momento.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

sanosuke24

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Concatenar Variables En C
« Respuesta #2 en: Jueves 23 de Agosto de 2007, 16:39 »
0
La longitud maxima que le he dado a cada variable ha sido de 256 caracteres, aunque he estado probando con otros valores y no me ha funcionado. Otro modo de solucionar mi problema creo que seria el siguiente:

Como puedo escribir en un archivo dos cadenas de caracteres seguidas utilizando fprintf?

Por ejemplo lo que me gustaria meter en el archivo seria "user nombredeusuario password" siendo 'nombredeusuario' y 'password' las dos cadenas que quiero insertar. He probado de mil maneras y el comando fprintf unicamente me añade una de ellas. Un ejemplo de lo que he probado seria el siguiente:

fprintf(fp_1,"user %s %s",usuario,password);

sanosuke24

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Concatenar Variables En C
« Respuesta #3 en: Jueves 23 de Agosto de 2007, 17:31 »
0
Ya he descubierto que ocurre. Resulta que si las variables las he definido yo a manosi que funciona. Por ejemplo:

Citar
char *variable = "hola";

Sin embargo si el programa ha conseguido las variables leyendo de un archivo no funciona. Eso por que puede ser?

 Gracias y un saludo.

Ithilien

  • Miembro MUY activo
  • ***
  • Mensajes: 116
    • Ver Perfil
Re: Concatenar Variables En C
« Respuesta #4 en: Martes 28 de Agosto de 2007, 14:38 »
0
Yo creo que es porque tienes que reservar el espacio con ( char *)malloc( longitud * sizeof(char)).

Al haber puesto las variables con un valor, en tiempo de ejecución el compilador reserva memoria. Sin embargo, cuando lee de un fichero, no es así. Por lo tanto, deberás reservar la memoria ( y luego free(...) ). Y siempre reserva uno o dos caracteres más para los \0.

Suerte!

P.D.: Espero no haber metido la pata con lo de conocer en tiempo de ejecución el tamaño. SI alguien sabe la respuesta correcta, por favor, lo diga, gracias!

peplote

  • Nuevo Miembro
  • *
  • Mensajes: 1
    • Ver Perfil
Re: Concatenar Variables En C
« Respuesta #5 en: Miércoles 5 de Septiembre de 2007, 23:45 »
0
Hola,
La verdad que no das muchos datos. Por ejemplo podias dar un caso real, diciendonos que es lo que supuestamente deberia de leer y lo que realmente lee.

No creo que sea por problemas de coger basurilla del fichero, como cambios de linea del fichero o parecido, y eso te lo estropee. strcat te lo concatena bien aunque haya un cambio de linea en medio.

Yo creo que el problema esta en como lo lees de los ficheros. Cuentanos como lo haces...

Saludos y animo, seguro que lo sacas!!