Program to Convert Digit/Number to Words in C
Converting Numbers to Words
Converting a number to words is a common problem in programming.
We will explore three different methods to achieve this in C.
Method 1: Using Arrays
This method utilizes arrays to map digits to their word equivalents.
#include <stdio.h> void convertToWords(int num) { char *single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; printf("%s", single_digits[num]); } int main() { int num; printf("Enter a single-digit number: "); scanf("%d", &num); if (num >= 0 && num <= 9) convertToWords(num); else printf("Invalid input!"); return 0; }
Output: Five
Method 2: Using String Manipulation
This method handles multi-digit numbers using a loop.
#include <stdio.h> #include <string.h> void convertToWords(int num) { char *single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; char str[20]; sprintf(str, "%d", num); for (int i = 0; i < strlen(str); i++) { printf("%s ", single_digits[str[i] - '0']); } } int main() { int num; printf("Enter a number: "); scanf("%d", &num); convertToWords(num); return 0; }
Output: One Two Three
Method 3: Using Recursion
This method recursively processes each digit.
#include <stdio.h> char *single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"}; void convertToWordsRecursive(int num) { if (num == 0) return; convertToWordsRecursive(num / 10); printf("%s ", single_digits[num % 10]); } int main() { int num; printf("Enter a number: "); scanf("%d", &num); if (num == 0) printf("Zero"); else convertToWordsRecursive(num); return 0; }
Output: Five Zero Seven