• Jueves 18 de Abril de 2024, 04:27

Autor Tema:  Unir Cadenas En C  (Leído 3914 veces)

Javichuvm

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Unir Cadenas En C
« en: Sábado 3 de Mayo de 2008, 23:47 »
0
Hola a todos.

Vereis, tengo una duda con un ejercicio que estoy haciendo, y es que al ejecutar el programa, le paso distintos parametros (3 para ser exactos). Entonces, por ejemplo, si ejecuto en la terminal de linux ./monitor 1 200 4, lo único que quiero hacer es que una variable definida anteriormente así:

char Nombre;

me guarde un nombre que yo le diga y el ultimo parametro, seguidos.

Es decir, lo que yo he puesto es lo siguiente:

Nombre = "fichero" + argv[3];

pero eso no me funciona y me da error.

Lo que quiero conseguir es que nombre tenga por valor "fichero4".

Alguien me puede ayudar??

Gracias a todos y un saludo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Unir Cadenas En C
« Respuesta #1 en: Sábado 3 de Mayo de 2008, 23:54 »
0

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.

Riskz

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Unir Cadenas En C
« Respuesta #2 en: Miércoles 7 de Mayo de 2008, 00:21 »
0
No puedes hacer esto :
Código: Text
  1.  
  2. Nombre = "fichero" + argv[3];
  3.  
  4.  

Eso en C no existe hasta donde yo se (soy principiante igual).
Yo en tu lugar usaria
Código: Text
  1.  
  2. strcat(Nombre, itoa(argv[3]));   //como bien dijo Eternal Idol
  3.  
  4.  
o
Código: Text
  1.  
  2. sprintf(Nombre,"%s%i", nombre, argv[3]);
  3.  
  4.  

Eso teniendo en cuenta que argv[3] es de tipo int, sino olvidate del atoi() y no uses la segunda opcion que te di. Para usar atoi creo que necesitas incluir <stdlib.h> y para strcat y sprintf <string.h>

Saludos

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Unir Cadenas En C
« Respuesta #3 en: Miércoles 7 de Mayo de 2008, 08:06 »
0
Cita de: "Riskz"
No puedes hacer esto :
Código: Text
  1.  
  2. Nombre = &#34;fichero&#34; + argv[3];
  3.  
  4.  

Y si, en el primer mensaje el mismo dijo que le daba error ..

Cita de: "Riskz"
Yo en tu lugar usaria
Código: Text
  1.  
  2. strcat(Nombre, itoa(argv[3]));   //como bien dijo Eternal Idol
  3.  
  4.  
Código: Text
  1.  
  2. sprintf(Nombre,&#34;%s%i&#34;, nombre, argv[3]);
  3.  
  4.  

Los parametros en argv son TODOS cadenas por lo tanto itoa esta de mas y %i equivocado (deberia ser %s).

Siempre es bueno probar nuestro codigo antes de publicarlo y responder en hilos que no hayan tenido resolucion.

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.

Riskz

  • Miembro activo
  • **
  • Mensajes: 39
    • Ver Perfil
Re: Unir Cadenas En C
« Respuesta #4 en: Jueves 8 de Mayo de 2008, 01:12 »
0
Si por eso aclare que si arg[3] no era int que se olvidase del atoi y de la segunda forma
Es que todavia no hice programas usando los argumentos de main y por eso desconozco un poco el tipo y esas cosas.

Perdon por responder en hilos en los que ya contestaron pasa que en los que no contestan son justo los mas complicados en los que no se nada, y solo en estos puedo intentar ayudar. Ademas Eternal siempre respondes primero no vale jajajaja(joda). Igual mejor asi aprendo, ahora ya se que los argumentos de main son strings =). Y si la verdad tendria que empezar a probar el codigo antes de postearlo, pero bueno.

Un saludo