Título: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: DanielPy en 29 Diciembre 2014, 19:16 pm Hola a todos.
El enunciado del libro con el que estoy estudiando dice: Citar Escriba un programa que lea un carácter desde el teclado y que pruebe el carácter con cada una de las funciones de la biblioteca de manipulación de caracteres. Como no quiero utilizar 100 if ni switch se me antojo hacerlo de esta manera, obviamente me da un error que no puedo solucionar, me podrían informar si esto es posible o si estoy proponiendo un disparate.- Código
A simple vista se nota que me faltan muchas funciones, pero esto es sólo para la consulta.- Saludos. Daniel Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: crack81 en 29 Diciembre 2014, 20:26 pm Hay varias forma de hacerlo pero esta me parecio mas similar a como lo quieres
eso de poner Código ya no son funciones sino que las convertistes a un arreglo de caracteres Código
mi version esta en c++ pero creo que se entiende saludos... Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: DanielPy en 29 Diciembre 2014, 20:54 pm Hola crack81.
Gracias por ocuparte, eso es precisamente lo que no quiero hacer, utilizar 100 if.- Acabo de ver una referencia con puntero a función, voy a practicar para intentar lograrlo, de cualquier manera seguramente vos u otro tendrán una manera de hacerlo sin usar if ni switch.- Saludos. Daniel Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: crack81 en 29 Diciembre 2014, 22:18 pm Bueno antes te doy las gracias porque este tema no lo conocia asi que me puse a investigar y creo que esta es la solucion que buscabas
Código la verdad muy interesante el tema de punteros a funciones Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: DanielPy en 29 Diciembre 2014, 22:48 pm Hola.
Es precisamente lo que quería lograr, sólo tengo el trabajo de pasarlo de c++ a c, no tengo conocimientos de c++ pero seguramente no debe ser cosa de otro mundo.- Otra cosita, a las 20.26 no tenías ni idea de “puntero a función” y a las 22.18 ya hiciste un programa, a mí me llevo más de 2 días el tema y por lo visto todavía me falta, te felicito.- Saludos. Daniel Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: rir3760 en 30 Diciembre 2014, 03:55 am Es precisamente lo que quería lograr, sólo tengo el trabajo de pasarlo de c++ a c, no tengo conocimientos de c++ pero seguramente no debe ser cosa de otro mundo. La parte relacionada con el uso de punteros a función la puedes utilizar tal cual, sin cambios:Código
Solo un detalle: la expresión "(*func[ i ])(ch)" es valida pero no es necesario el operador de indirección, se puede utilizar "func[ i ](ch)" sin problemas. Un saludo Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: Yoel Alejandro en 1 Enero 2015, 21:48 pm Bueno,..... estuve revisando y convertir de C++ a C encierra unos detalles no tan mínimos :-\
Debes cambiar los cout a printf, el cin a scanf. Ahora, como C no admite la clase string (C no admite clases), hay que declarar e inicializar el array de mensajes "manualmente". Puede quedar así: Código
Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: DanielPy en 3 Enero 2015, 23:22 pm Hola yoel_alejandro.
Muchas gracias por ocuparte del paso del programa de c++ a c, funciona a la perfección.- Igual yo dejo mi versión.- Código
Saludos. Daniel Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: Yoel Alejandro en 4 Enero 2015, 01:46 am Excelente por tu trabajo te felicito.
Sólo un detalle. ¿Te has preguntado por qué requieres dos getchar() para hacer la pausa al final del programa? Con uno sólo no funciona :-\ La razón es que Código descarta la tecla ENTER, y sólo almacena en la variable a el carácter introducido antes del mismo. Entonces dicho ENTER debe ser "limpiado", a eso llamamos limpiar el búfer de entrada. Usamos: Código y listo ya puedes poner un único getchar() al final del programa para producir la pausa. Es recomendable siempre "limpiar el búfer" tras un getchar(), un gets() o un scanf() pues estas funciones descartan el carácter de nueva línea. Título: Re: [C] Llamar a un array de punteros a caracteres en un bucle. Publicado por: DanielPy en 4 Enero 2015, 18:15 pm Hola.
Me vino de perillas tu aclaración, si bien ya tengo incorporado lo de limpiar el buffer de entrada (gracias pero muchas gracias a rir3760) que además valida que el ingreso sea sin errores, en este caso lo olvide e iba a hacer una validación porque al ingresar por ejemplo 4b el programa finalizaba abruptamente, con la limpieza del buffer ello no ocurre.- Saludos. Daniel |