Printing Integer Digits as Words in C++

In summary: C++]#include <iostream>using namespace std;int main (){ cout << "Hello, world!" << endl; return 0;}[/code]In summary, the programmer is not sure how to get the next digit in an integer. He has tried different things, but they do not seem to work. He has tried working out each step in detail, but he is not sure whether he should print the digits as he gets them or store them and print them out all at once. He is also not sure which order to print them. He has tried working through his steps with several example integers,
  • #1
Raghav Gupta
1,011
76
Write a “C++” program to read any integer number and print each digit into word.
I went like this

# include <iostream.h>
#include <conio.h>
void main(){
int a,b,c,d;
clrscr();
b=a
cout<<"Enter any number"<<endl;
cin>>a;
c=a%10;
d=a/10;
I am not getting further logic.
someone was saying for loop we also have to apply.
 
Technology news on Phys.org
  • #2
This is clearly homework. So I will only give hints.

Do not start by writing C++ code. That comes only very near the end.

Can you solve the problem "on paper?" I mean, can you work out the steps that you would take to get the results you want?

If you can't then it is NOT time to start writing computer code. You need to stop and be sure you understand what it is you are meant to accomplish.

Work out each step in detail. Work out how you would know when you were done. Work out how you would get each next digit, and what you would do to determine the next digit. Work out whether you will print out the digits as you get them or if you will store them and print them out all at once. Work out which order you will print them, meaning if the integer is 146 do you print 1 then 4 then 6, or do you print 6 then 4 then 1?

Work through your steps with several example integers. Be sure to use different length integers. Be sure to include cases like 4000 with several trailing 0's. Be sure to include cases like -45 with a negative sign. Be sure to include 5, one digit, 37, two digits, 389484, a bunch of digits.

Be sure to think about cases where the user types in letters or punctuation marks instead of integers, and figure out what your program should do about that. Maybe the spec of the problem does not include this, so the behaviour of your program satisfies the spec no matter what it does in this case.

Once you have all the rules and steps worked out, only then is it time to start writing computer code.

C++ is based on certain standard structures. Using "void main" is non-standard, but many compilers let you do it. The routine clscr() isn't standard either, but again, many compilers let you away with it.

You have not got a complete program. When you are coding, always be sure you have a complete program at each step. For example, make sure you balance all { and } as soon as you type them. So when you put in {, immediately go put in the balancing }.

Use white space to your advantage. Line up { with } in this kind of fashion.
{
... stuff
}

Note that the { and } should be in the same column on different lines. Don't jam it all on one line like this {...stuff} because that is hard to read. If you have another layer of {} inside the first layer, then indent the inside layer.
{
<tab here> {
<tab here> ... stuff
<tab here> }
}

The forum editor does not like leading white space, so where it says <tab here> you should put in a tab.

Your understanding of the problem will have some kind of thing like this: Determine how long the integer is. Figure out the next digit. Keep outputting digits for that long. You need to figure out how to do that. It will probably be either a for loop or a while loop. You need to look in your text and find those and figure out how to enter them.
 
  • #3
Tip: when posting code in this forum, enclose it in "code tags" like this:

[code=C]
#include <iostream>

using namespace std;

int main ()
{
cout << "Hello, world!" << endl;
return 0;
}
[/code]

Then it will preserve any spaces that you use at the beginning of a line to indent your code. In the code above, I actually indented two lines. The forum software strips out the extra spaces in "normal" text, but not in "code" text.

Code:
#include <iostream>

using namespace std;

int main ()
{
    cout << "Hello, world!" << endl;
    return 0;
}

Also, if you put the language name in the code tag, the software can colorize certain features of your code to make it easier to read. (I used "C" instead of "C++" because this trick apparently treats them as the same)
 

1. How can I convert an integer number to its corresponding word representation in C++?

To convert an integer number to its corresponding word representation in C++, you can use the "numToWords" function. This function takes in an integer as an argument and returns a string with the word representation of the number. You can then print this string to display the word representation.

2. Can I print negative numbers as words using this method?

Yes, the "numToWords" function can handle negative numbers. It will add the word "negative" in front of the word representation for negative numbers. For example, -5 will be printed as "negative five".

3. Are there any limitations to the numbers that can be converted to words?

Yes, the "numToWords" function can only handle integer numbers within the range of -999,999,999 to 999,999,999. If the number provided is outside of this range, an error message will be returned.

4. Can I customize the word representation for specific numbers?

Yes, you can customize the word representation for specific numbers by adding conditional statements within the "numToWords" function. For example, if you want the number 11 to be represented as "eleven" instead of "one one", you can add an if statement to check for this specific number and return the desired representation.

5. Is there a way to print the word representation of a number with proper capitalization?

Yes, you can use the "capitalize" function to convert the first letter of the word representation to uppercase. This function takes in a string as an argument and returns the same string with the first letter capitalized. You can apply this function to the output of the "numToWords" function to print the word representation with proper capitalization.

Similar threads

  • Programming and Computer Science
Replies
12
Views
1K
  • Programming and Computer Science
Replies
5
Views
2K
  • Programming and Computer Science
Replies
5
Views
4K
  • Programming and Computer Science
Replies
3
Views
3K
  • Programming and Computer Science
Replies
1
Views
2K
  • Programming and Computer Science
4
Replies
118
Views
6K
  • Programming and Computer Science
Replies
6
Views
8K
  • Programming and Computer Science
Replies
25
Views
2K
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
4
Views
5K
Back
Top