Sólo me queda la duda de no introducir el caracter nulo al final de cada cadena.
No hay problema. Cuando se declara un array y se inicializa mediante una lista de valores:Código
Los valores faltantes se toman como cero.
char tok[40][6] = {{0}};
P.D: Lo que no entiendo es a cuento de que vino el código que habías posteado anteriormente
¿El primero? Me parecio un buen ejemplo del uso de un interruptor y punteros a funciones.rir usando macros para hacer el código más legible?
No la veo mal. La alternativa era isdigit pero esta no garantiza el resultado uno o cero, se debe forzar y con ello el condicional (con macro):Código
Termina así (con isdigit):
if (IS_DIGIT(cad[i]) ^ IS_DIGIT(cad[i + 1])){
Código
En mi opinión demasiado forzado, a falta de opciones no queda mas (remedio) que utilizar la macro.
Un saludo