elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
29 Mayo 2012, 02:56  


Tema destacado: [AIO elhacker.NET] Compilación herramientas análisis y desinfección malware

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Problema la copiar cadena con strcpy
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema la copiar cadena con strcpy  (Leído 348 veces)
NeoB

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Problema la copiar cadena con strcpy
« en: 16 Enero 2012, 21:27 »

Hola, soy nuevo en el foro y se poco de C. Tengo una pequeña duda que me está matando. He probado de un montón de formas y no acierto. Tengo un programa que me pide unos argumentos y al intentar sacarlos con strcpy me devuelve "Violación de segmento". Este es el código:
Código
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
main(int argc, char *argv[])
{
char *argumento1;
/*Creo que aquí me da el error con "strcpy(&argumento1, argv[1]);" y con otros...*/
if (argumento1=="--help")
{
printf("En construcción.\n");
}
return 0;
}
 
 
¿Alguien me da la forma de copiar argv[1] en argumento1? Gracias de antemano.


« Última modificación: 16 Enero 2012, 21:29 por NeoB » En línea
bdoX

Desconectado Desconectado

Mensajes: 31



Ver Perfil
Re: Problema la copiar cadena con strcpy
« Respuesta #1 en: 16 Enero 2012, 22:37 »

Hola: bienvenido al foro. mira, te cuento


Código
/*Creo que aquí me da el error con "strcpy(&argumento1, argv[1]);" y con otros...*/
if (argumento1=="--help")
{
printf("En construcción.\n");
}
 
 
¿Alguien me da la forma de copiar argv[1] en argumento1? Gracias de antemano.

lo que recibe strcpy es una dirección, argumento1 ya es una dirección, asi que no hagas esto "&argumento1". Lo otro, es que argumento1 no tiene memoria reservada, asi que no puedes copiar dentro de esa funcion una cadena determinada.

asi tiene que quedar:

Código
if ( (argumento1  = (char *)malloc (TAM*sizeof (char))) == NULL )
{
   printf ( "Error, no puso asignar memoria\n" );
   return -1;
}
 
strcpy(argumento1, argv[1]);
 

Tampoco puedes comparar cadenas de forma directa

Código:
if (argumento1=="--help")

tienes que hacerlo con una función que no es para nada dificil de implementar, o simplemente usar la funcion de la string.h llamada strcmp() para hacer comparaciones de cadenas

Yo en particular, compararía la cadena directamente sin necesidad de malgastar memoria, pero supongo que es cosa de gustos.

acá te dejo el codigo:

Código
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define TAM 20
 
int main(int argc, char *argv[])
{
   char *argumento1;
 
   if ( argc != 2 )
   {
       printf ( "ERROR: debe ingresar un parametro, pida ayuda al comando help\n" );
       printf ( "Ej: c:\\programa.exe --help\n" );
       return -1;
   }
 
   if ( (argumento1  = (char *)malloc (TAM*sizeof (char))) == NULL )
   {
       printf ( "Error, no puso asignar memoria\n" );
       return -1;
   }
 
   //funcion que copia la cadena de argv[1] y lo deja en argumento1
   strcpy (argumento1, argv[1]);
 
   //funcion que compara cadenas
   if ( !strcmp (argumento1,"--help") )
   {
       printf("En construcción.\n");
   }
   return 0;
}
 



En línea

NeoB

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Problema la copiar cadena con strcpy
« Respuesta #2 en: 17 Enero 2012, 17:52 »

Ok, muchas gracias.
En línea
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[C] Copiar carácter de un string a una cadena.
Programación C/C++
Kasswed 6 1,992 Último mensaje 18 Julio 2007, 01:35
por TheWretched
copiar una cadena en una matriz
Programación C/C++
vens_19 13 3,044 Último mensaje 7 Diciembre 2009, 17:34
por vens_19
copiar caracteres en una cadena « 1 2 »
Programación C/C++
mapers 22 2,645 Último mensaje 9 Julio 2010, 05:15
por mapers
Problema con funcion strcpy().
Programación C/C++
dark-heimdall 1 1,752 Último mensaje 19 Febrero 2011, 06:36
por dark-heimdall
problema con uso de strcpy
Programación C/C++
m@o_614 2 457 Último mensaje 19 Diciembre 2011, 18:37
por m@o_614
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines