Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Miky Gonzalez en 4 Julio 2012, 11:23 AM

Título: Ayuda - Buscar una cadena en parametros de funcion
Publicado por: Miky Gonzalez en 4 Julio 2012, 11:23 AM
Hola, tengo un pequeño problema que no soluciono:
Tengo (por ejemplo) la siguiente funcion: funcion main(int argc, char **argv).
Y tengo por ejemplo: si (argv[1] == "argumento1"); se escribio un argumento.
Pero como puedo hacer para buscar por ejemplo si se ha contenido en la lista de argumentos el argumento -e por ejemplo para especificar algo, es decir podria hacer: prog.exe a -e; u otro ejemplo prog.exe -e a.
Es decir que sepa si se ha especificado el argumento buscandolo.. intente con strcmp pero nose como hacer para buscar en todos los posibles argumentos que haya puesto
Título: Re: Ayuda - Buscar una cadena en parametros de funcion
Publicado por: satu en 4 Julio 2012, 13:50 PM
Hola

Es muy fácil, recorriendo hasta donde te indique argc

Código (cpp) [Seleccionar]

int main(int argc, char **argv) {
    for(int i = 1; i < argc; i++) {
        if(strcmp(argv[i], "lo que sea") == 0) {
            ......
        } else {
            if(strcmp(argv[i], "otra cosa") == 0) {
                .........
            }
        }
    }
}


Saludos
Título: Re: Ayuda - Buscar una cadena en parametros de funcion
Publicado por: Miky Gonzalez en 4 Julio 2012, 14:00 PM
O_O cierto es, como no me di cuenta, muchas gracias satu.
Título: Re: Ayuda - Buscar una cadena en parametros de funcion
Publicado por: 0xDani en 4 Julio 2012, 14:24 PM
Yo mas bien haria:
Código (cpp) [Seleccionar]

int main(int argc, char** argv){
for(int i=0; i<argc; i++){
  if(strcmp(argv[i], "algo")!=0) continue;
  else {/*codigo*/ break; }
}
return 0;
}

Asi vas buscando el argumento que quieras hasta que lo encuentres, ejecutas lo que quieras y luego sales del bucle.

Saludos.