/* * Exercise1.3.c * * * */ #include #include #include int getdig(void){ char * pEnd; int i, c, n, factor, digit[9] = { 0 }; i = 0; printf("Enter Digits.\n"); while((c = getchar()) != '\n' && i != 9){ // c is now the int cast of the unsigned char that getchar returned digit[i] = strtol(&c, &pEnd, 0); //strcpy(digit[i], &c); i++; } // count how many actual digits were entered into digit i = 0; n = 0; while((int)digit[i] != 0 ){ // && digit[i] != NULL printf("This char is %c and digit is %d\n", digit[i], digit[i]); n++; // N will contain the number of digits entered i++; } // do arithmatic to compile the number needed. //c = NULL; printf("Number of digits is %d.\n", n); c = 0; i = 1; factor = 1; for(; n != 0; --n){ c += (digit[(n - 1)] * (int)factor); printf("DEBUG: c is now (int) %d and (char) %c.\n", c, c); factor = factor * 10; i++; } printf("Is your number %c, or %d?\n", c, c); printf("Number of digits is %d.\n", n); return 0; } int main(void){ int got; got = getdig(); printf("Your number is: %d\n",got); }