unsigned int atoui(char *txt) { unsigned int retval = 0; unsigned int lastval = 0; int pos = 0; while (txt[pos] != 0) { if (!isdigit(txt[pos])) return 0; retval *= 10; retval += txt[pos] - '0'; if (retval < lastval) return 0; lastval = retval; pos++; } return retval; }