Secondo me dovresti iniziare a semplificare il codice, scrivendo delle funzioni di base.
Potresti iniziare a scrivere una funzione come questa
int AreAllDigits(char *str)
che ti ritorna 1 o 0 a seconda che la stringa contenga solo cifre oppure no.
Questa funzione la provi a parte, anche in un altro programmino, passandole delle stringhe di prova, per verificarne il corretto funzionamento.
Quando questa funzione è a posto la puoi richiamare da quel pezzo di codice e passare eventualmente ad altri problemi.
Se, invece, sviluppi tutto in un'unica mega funzione difficilmente ne verrai fuori.