Foro de elhacker.net

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
  1. int main(int argc, char **argv) {
  2.    for(int i = 1; i < argc; i++) {
  3.        if(strcmp(argv[i], "lo que sea") == 0) {
  4.            ......
  5.        } else {
  6.            if(strcmp(argv[i], "otra cosa") == 0) {
  7.                .........
  8.            }
  9.        }
  10.    }
  11. }
  12.  

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
  1. int main(int argc, char** argv){
  2. for(int i=0; i<argc; i++){
  3.  if(strcmp(argv[i], "algo")!=0) continue;
  4.  else {/*codigo*/ break; }
  5. }
  6. return 0;
  7. }
  8.  
Asi vas buscando el argumento que quieras hasta que lo encuentres, ejecutas lo que quieras y luego sales del bucle.

Saludos.