Prime

#### Prepinsta Prime

Video courses for company/skill based Preparation

(Check all courses)
Get Prime Video
Prime

#### Prepinsta Prime

Purchase mock tests for company/skill building

(Check all mocks)
Get Prime mock

# C Program for Converting digit/number to words

## Converting Digits/Numbers to words

The conversion of numbers in words is just a conversion of numeric values to English format of reading numbers. This code supports the conversion of numbers from 0-9999 in English Format. Digits have different places when read from it’s once place to above. Different places for numbers are :

• Single digits:- Ones
• Two Digits:-Tens
• Three Digits:- Hundreds
• Four Digits:- Thousands

Etc. as in this program we will be converting only upto 4 digits

## Algorithm

• Step 1:- Start.
• Step 2:- Taking input as a string from the user.
• step 3:- Check the length of the input.
• step 4:- if the length is zero print ’empty’ and if the length is greater than 4 print ‘give a string of specific length’
• Step 5:- if length id between 1 – 4, Create arrays for different values.
• Step 6:- Checking the length of the string.
• Step 7:- According to the place of the digit, we will show the output.
• Step 8:- End.
`#include <stdio.h>#include <string.h>#include <stdlib.h>void convert_to_words(char *num){  int len = strlen(num);   if (len == 0)  {    fprintf(stderr, "empty string\n");    return;  }  if (len > 4)   {    fprintf(stderr, "Length more than 4 is not supported\n");    return;  }  char *single_digits[] = { "zero", "one", "two", "three", "four","five", "six", "seven", "eight", "nine"};  char *two_digits[] = {"", "ten", "eleven", "twelve", "thirteen", "fourteen","fifteen", "sixteen", "seventeen", "eighteen", "nineteen"};  char *tens_multiple[] = {"", "", "twenty", "thirty", "forty", "fifty","sixty", "seventy", "eighty", "ninety"};  char *tens_power[] = {"hundred", "thousand"};  printf("\n%s: ", num);  if (len == 1)   {    printf("%s\n", single_digits[*num - '0']);    return;  }  while (*num != '\0')   {    if (len >= 3)     {      if (*num -'0' != 0)       {        printf("%s ", single_digits[*num - '0']);        printf("%s ", tens_power[len-3]);       }      --len;    }    else     {      if (*num == '1')       {        int sum = *num - '0' + *(num + 1)- '0';        printf("%s\n", two_digits[sum]);        return;      }      else if (*num == '2' && *(num + 1) == '0')       {        printf("twenty\n");        return;      }      else       {        int i = *num - '0';        printf("%s ", i? tens_multiple[i]: "");        ++num;        if (*num != '0')          printf("%s ", single_digits[*num - '0']);      }    }    ++num;  }}int main(void){  char num[4];  scanf("%s",num);  convert_to_words(num);  return 0;}`
```Output:
1121 : one thousand one hundred twenty one```