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:
#include <stdlib.h>
char cadena[]="opcion123";
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:
// prototipos de las funciones
int funcion_1(void);
int funcion_2(void);
//...
// dentro de main
int (*f[])(void)={funcion_1, funcion_2}; // array de funciones
char cadena[]="opcion2";
int index
=atoi(cadena
+6); // index de la funcion a ejecutar segun la opcion 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.