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 <iostream>
using namespace std;
void convertToWords(int num) {
string single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
cout << single_digits[num];
}
int main() {
int num;
cout << "Enter a single-digit number: ";
cin >> num;
if (num >= 0 && num <= 9)
convertToWords(num);
else
cout << "Invalid input!";
return 0;
}
Output: Five
Method 2: Using String Manipulation
This method handles multi-digit numbers using a loop.
#include <iostream>
#include <string>
using namespace std;
void convertToWords(int num) {
string single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
string str = to_string(num);
for (char ch : str) {
cout << single_digits[ch - '0'] << " ";
}
}
int main() {
int num;
cout << "Enter a number: ";
cin >> num;
convertToWords(num);
return 0;
}
Output: One Two Three
Method 3: Using Recursion
This method recursively processes each digit.
#include <iostream>
using namespace std;
string single_digits[] = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"};
void convertToWordsRecursive(int num) {
if (num == 0)
return;
convertToWordsRecursive(num / 10);
cout << single_digits[num % 10] << " ";
}
int main() {
int num;
cout << "Enter a number: ";
cin >> num;
if (num == 0)
cout << "Zero";
else
convertToWordsRecursive(num);
return 0;
}
Output: Five Zero Seven