elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Switch con cadena
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Switch con cadena  (Leído 6,468 veces)
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Switch con cadena
« Respuesta #10 en: 30 Septiembre 2013, 08:29 am »

Mira deja de contestar porque pareces que no entiendes, el programa externo no lo puedo tocar y punto, no es parte de la solución que estoy otorgando y esta fuera de mi alcance.

Como dice Xiruko, practica comprensión lectora... y te lo digo más que nada por esto ( lo he aislado para que te sea más sencillo de localizar ):

Y volviendo a lo de tu programa... me parece lógico que si tienes que aprovechar la salida de un programa ajeno tengas que adaptarte a sus salidas, pero eso no implica que yo no pueda pensar que el que programó eso podía haberlo hecho mejor. Es mi opinión y es tan respetable como la tuya.

Resumido: si el programa que te pasa los parámetros no es tuyo, te tienes que adaptar, no hay otra. Sin embargo yo sigo pensando que el mecanismo empleado es malo con ganas.

Y tranquilo, procuraré no responderte en el futuro, al menos hasta que no aprendas a leer lo que la gente se molesta en escribirte.


En línea

x64core


Desconectado Desconectado

Mensajes: 1.908


Ver Perfil
Re: Switch con cadena
« Respuesta #11 en: 1 Octubre 2013, 01:25 am »


Código:
if(strcmp(string1,string2) == 0)
{
...
}
else if(strcmp(string1,string2) == 0)
{
...
}
else if(strcmp(string1,string2) == 0)
{
...
}
else if(strcmp(string1,string2) == 0)
{
...
}
else if(strcmp(string1,string2) == 0)
{
...
}
else
{
...
}


En línea

Xedrox

Desconectado Desconectado

Mensajes: 274



Ver Perfil
Re: Switch con cadena
« Respuesta #12 en: 4 Octubre 2013, 03:46 am »

Quizás antes de programar deberías practicar un poco de comprensión lectora...

Para intentar ayudar, si el formato de las opciones siempre es de la misma manera como "opcionX" u "OpcionX" o lo que sea, puedes pasarle un puntero al inicio del número en la cadena a la función atoi() de esta manera:

Código
  1. #include <stdlib.h>
  2. char cadena[]="opcion123";
  3. printf("%d\n", atoi(cadena+6));

Código:
output: 123

Claro que si el formato entre opciones cambia entonces ya no sirve. Si no cambia, podrías hacer lo que dijo eferion para ahorrarte un switch-case tan grande y usar punteros a función. Por ejemplo:

Código
  1. // prototipos de las funciones
  2. int funcion_1(void);
  3. int funcion_2(void);
  4.  
  5. //...
  6.  
  7. // dentro de main
  8. int (*f[])(void)={funcion_1, funcion_2};    // array de funciones
  9. char cadena[]="opcion2";
  10. int index=atoi(cadena+6);                   // index de la funcion a ejecutar segun la opcion
  11. f[index]();                                 // se ejecuta la funcion

Y bueno, de esta manera ganarías bastante rapidez aunque se perdería algo de legilibilidad en el código.

Saludos.

Punto 1, desde el primer mensaje que vengo diciendo que no entra en discucion el tema de como lo recibo el parametro y sin embargo lo vuelven a mencionar.
Punto 2, el formato entre las opciones no sirve porque son todos distintos entre ellos. Lo unico que queda es dejarlo con if/else como bien dice x64Core.



Como dice Xiruko, practica comprensión lectora... y te lo digo más que nada por esto ( lo he aislado para que te sea más sencillo de localizar ):

Resumido: si el programa que te pasa los parámetros no es tuyo, te tienes que adaptar, no hay otra. Sin embargo yo sigo pensando que el mecanismo empleado es malo con ganas.

Y tranquilo, procuraré no responderte en el futuro, al menos hasta que no aprendas a leer lo que la gente se molesta en escribirte.

Dijiste lo que ya te dije antes, me parece que tendrías que buscar "comprension lectura" en google antes de querer dar lecciones. Gracias y saludos.
« Última modificación: 4 Octubre 2013, 09:02 am por Eternal Idol » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Switch con cadena
« Respuesta #13 en: 4 Octubre 2013, 16:22 pm »

Me entrometo:

Yo aquí veo una opción muy sencilla, a saber: Codifica las entradas (strToInt(campo)) antes de el switch, y las guardas en variables. Cuando digo codificarlas, digo convertirlas a entero, con el método que más te guste. Luego el resto, aparenta estar resuelto.
En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cadena estatica al devolver puntero de cadena.
Programación C/C++
alem29 2 3,305 Último mensaje 5 Febrero 2012, 23:38 pm
por eleon
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines