diff options
Diffstat (limited to 'reworking/wordnums.c')
| -rw-r--r-- | reworking/wordnums.c | 48 | 
1 files changed, 30 insertions, 18 deletions
| diff --git a/reworking/wordnums.c b/reworking/wordnums.c index ad57107..5f48400 100644 --- a/reworking/wordnums.c +++ b/reworking/wordnums.c @@ -14,17 +14,17 @@ const char *tens[10] = {"","", "twenty", "thirty", "forty",  const char *nd = "AND"; -int lengthOfName(char *num){ +int lengthOfName(char *num) {      char *word;       // minus 1 for null terminator      int digits = strlen(num) - 1;      int n = atoi(num); -    if(digits == 1){ +    printf("The num is now %s", num, digits); +    if(digits == 1) {          word = (char *) ones[n];          printf("%s\n", word);          return strlen(word); -    } -    if(digits == 2){ +    } else if(digits == 2) {          // if the first digit, ie. the tens column is 1          if(num[0] == '1'){              word = (char *) teens[n % 10]; @@ -36,31 +36,43 @@ int lengthOfName(char *num){              word = (char *) tens[n / 10];              printf("%s\n", word);              return strlen(word); -        } -        else{ -            // since the input to the function expects a null terminator, an extra '\n' is needed -             -            /// substring would be a better way to do this +        } else { +            // since the input to the function expects a null terminator,  +            // an extra '\n' is needed              char o[2];              int on;              word = (char *) tens[n / 10];              printf("%s", word); -            o[0] = num[1]; -            o[1] = '\n'; +            strncpy(o, &num[1], 2); +            printf("%s", o);              on = lengthOfName(o); -            //return (strlen(word) + lengthOfName(o));              return (strlen(word) + on);          } +    } else if(digits == 3) { +        printf("HERE\n\n"); +        word = (char *) ones[n / 100]; +        printf("%shundred", word); +        if(num[1] == '0' && num[2] == '0') { +            printf("\n"); +            return strlen(word) + strlen("hundred"); +        } else { +            char t[3]; +            int te; +            strncpy(t, &num[1], 3); +            printf("%s", nd); +            te = lengthOfName(t); +            // example: the user inputs, num = 121 +            //      one            hundred            AND         twenty one +             +            ////this line breaks the program for some reason +            //return (strlen(word) + strlen("hundred") + strlen(nd) + te); +        }      } -    if(digits == 3){ -        word = (char *) ones[n / 100] -        int t = lengthOfName( -    } -    // error condition +    // error condition for debugging, i.e. in case I messed up, return something      return -1;  } -int main(){ +int main() {      // 4 is the max for this example, +1 for null terminator or if user tries to cheat      char n[5];      int out; | 
