Converting Letters into a Phone Number

Hi there! This is the prompt for my homework question:

To make telephone numbers easier to remember, some companies use letters to show their telephone number. For example, using letters, the telephone number 438-5626 can be shown as GET LOAN. In some cases, to make a telephone number meaningful, companies might use more than seven letters. For example, 225-5466 can be displayed as CALL HOME, which uses eight letters. Write a program that prompts the user to enter a telephone number expressed in letters and outputs the corresponding telephone number in digits. If the user enters more than seven letters, then process only the first seven letters. Also output the – (hyphen) after the third digit. Allow the user to use both uppercase and lowercase letters as well as spaces between words. Moreover, your program should process as many telephone numbers as the user wants


And here's my program:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
#include <iostream>
using namespace std;


int main(){
    
    int counter;
    
    char phoneNumber;
    
  
    cout << "\nEnter a phone number in letters only." 
         << endl;
    
    for(counter = 0; counter < 7; counter ++)
{
     cin >> phoneNumber;
     
      if(counter == 3)
         cout << "-";
     
     if(phoneNumber >= 'A' && phoneNumber <= 'Z' 
        || phoneNumber >= 'a' && phoneNumber <= 'z')
     switch(phoneNumber)
{
         case 'A':
         case 'a':
         case 'B':
         case 'b':
         case 'C':
         case 'c':
             cout << 2;
             break;
         case 'D':
         case 'd':
         case 'E':
         case 'e':
         case 'F':
         case 'f':
             cout << 3;
             break;
         case 'G':
         case 'g':
         case 'H':
         case 'h':
         case 'I':
         case 'i':
             cout << 4;
             break;
             
         case 'J':
         case 'j':
         case 'K':
         case 'k':
         case 'L':
         case 'l':
             cout << 5;
             break;
         case 'M':
         case 'm':
         case 'N':
         case 'n':
         case 'O':
         case 'o':
             cout << 6;
             break;
         case 'P':
         case 'p':
         case 'Q':
         case 'q':
         case 'R':
         case 'r':
         case 'S':
         case 's':
             cout << 7;
             break;
             
         case 'T':
         case 't':
         case 'U':
         case 'u':
         case 'V':
         case 'v':
             cout << 8;
             break;
             
         case 'W':
         case 'w':
         case 'X':
         case 'x':
         case 'Y':
         case 'y':
         case 'Z':
         case 'z':
             cout << 9;
             break;             
}
}
        return 0;
}



The homework question wants the user to able to input as many telephone numbers as they wish. The problem I'm having is that my program only asks the user once. What would I have to change in order to ask the user more than once for input? Thanks in advance if anybody can offer a hint or two. If I don't reply immediately, it's because I'm heading out for work.
Last edited on
All you'd need to do is add a char variable outside a while loop that encompasses your entire program (but obviously within the main function). Set the char's initial variable to '\0' so the compiler won't yell at you, and at the end of the while loop, prompt the user to see if they want to enter another number, which gets entered into the char. If it equals Y, go again. Equals N, stop.
Topic archived. No new replies allowed.