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; |