Otra opción, es comparar si el carácter en el que estás (mientras recorres la cadena) está entre el valor del carácter 0 y el valor del carácter 9
Código
Que imagino será lo que isdigit hace por debajo, pero de esta forma, te ahorras llamar a una función
caracter>='0' && caracter<='9'
Pero eso sólo me serviría para valores comprendidos entre 0 y 9. Pero si meto el 14, por ejemplo, me dirá que no es un dato numérico.