Hola: bienvenido al foro. mira, te cuento
/*Creo que aquí me da el error con "strcpy(&argumento1, argv[1]);" y con otros...*/
if (argumento1=="--help")
{
}
¿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:
if ( (argumento1
= (char *)malloc (TAM
*sizeof (char))) == NULL
) {
printf ( "Error, no puso asignar memoria\n" ); return -1;
}
Tampoco puedes comparar cadenas de forma directa
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:
#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
//funcion que compara cadenas
if ( !strcmp (argumento1
,"--help") ) {
}
return 0;
}