#include <iostream>
#include <cstdlib>
#include <cctype>
#include <iomanip>
#include <cstring>
const int MAX = 100;
using namespace std;
int getInt(char);
bool isValidChar(char);
int main()
{
int num;
int j = 0;
char name, conti;
char alpha[MAX];
do {
cout << "Enter a phone symbols: " << endl;
cin.getline(alpha, MAX, ' ');
while (alpha[j] != '\0')
{
name = alpha[j];
if (isValidChar(name) == true)
{
num = getInt(name);
if (num == -1)
{
cout << "-";
}
else
{
cout << num;
}
}
else
{
cout << " - Invalid Char " << name << " found - rejected";
}
j++;
} // end while
j = 0;
cout << endl;
cout << "\nContinue (Y/y): ";
cin >> conti;
cin.ignore();
} while (conti == 'y');
}
int getInt(char input)
{
int result;
char value;
value = tolower(input);
if ((value >= 'a' && value <= 'c'))
{
result = 2;
}
else if ((value >= 'd' && value <= 'f'))
{
result = 3;
}
else if ((value >= 'g' && value <= 'i'))
{
result = 4;
}
else if ((value >= 'j' && value <= 'l'))
{
result = 5;
}
else if ((value >= 'm' && value <= 'o'))
{
result = 6;
}
else if ((value >= 'p' && value <= 's'))
{
result = 7;
}
else if ((value >= 't' && value <= 'v'))
{
result = 8;
}
else if ((value >= 'w' && value <= 'z'))
{
result = 9;
}
else
{
result = -1;
}
return result;
}
bool isValidChar(char value)
{
if (isalpha(value) || value == ' ')
{
return true;
}
else
{
return false;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGxpYj4KI2luY2x1ZGUgPGNjdHlwZT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxjc3RyaW5nPgoKY29uc3QgaW50IE1BWCA9IDEwMDsKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZ2V0SW50KGNoYXIpOwpib29sIGlzVmFsaWRDaGFyKGNoYXIpOwoKaW50IG1haW4oKQp7CiAgICBpbnQgbnVtOwogICAgaW50IGogPSAwOwogICAgY2hhciBuYW1lLCBjb250aTsKICAgIGNoYXIgYWxwaGFbTUFYXTsKCiAgICBkbyB7CiAgICAgICAgY291dCA8PCAiRW50ZXIgYSBwaG9uZSBzeW1ib2xzOiAiIDw8IGVuZGw7CiAgICAgICAgY2luLmdldGxpbmUoYWxwaGEsIE1BWCwgJyAnKTsKICAgICAgICB3aGlsZSAoYWxwaGFbal0gIT0gJ1wwJykKICAgICAgICB7CiAgICAgICAgICAgIG5hbWUgPSBhbHBoYVtqXTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChpc1ZhbGlkQ2hhcihuYW1lKSA9PSB0cnVlKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBudW0gPSBnZXRJbnQobmFtZSk7CgogICAgICAgICAgICAgICAgaWYgKG51bSA9PSAtMSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8ICItIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjb3V0IDw8IG51bTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIiAtIEludmFsaWQgQ2hhciAiIDw8IG5hbWUgPDwgIiBmb3VuZCAtIHJlamVjdGVkIjsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgaisrOwogICAgICAgIH0gLy8gZW5kIHdoaWxlCiAgICAgICAgaiA9IDA7CiAgICAgICAgY291dCA8PCBlbmRsOwoKICAgICAgICBjb3V0IDw8ICJcbkNvbnRpbnVlIChZL3kpOiAiOwogICAgICAgIGNpbiA+PiBjb250aTsKICAgICAgICBjaW4uaWdub3JlKCk7CgogICAgfSB3aGlsZSAoY29udGkgPT0gJ3knKTsKfQoKaW50IGdldEludChjaGFyIGlucHV0KQp7CiAgICBpbnQgcmVzdWx0OwogICAgY2hhciB2YWx1ZTsKICAgIHZhbHVlID0gdG9sb3dlcihpbnB1dCk7CiAgICBpZiAoKHZhbHVlID49ICdhJyAmJiB2YWx1ZSA8PSAnYycpKQogICAgewogICAgICAgIHJlc3VsdCA9IDI7CiAgICB9CiAgICBlbHNlIGlmICgodmFsdWUgPj0gJ2QnICYmIHZhbHVlIDw9ICdmJykpCiAgICB7CiAgICAgICAgcmVzdWx0ID0gMzsKICAgIH0KICAgIGVsc2UgaWYgKCh2YWx1ZSA+PSAnZycgJiYgdmFsdWUgPD0gJ2knKSkKICAgIHsKICAgICAgICByZXN1bHQgPSA0OwogICAgfQogICAgZWxzZSBpZiAoKHZhbHVlID49ICdqJyAmJiB2YWx1ZSA8PSAnbCcpKQogICAgewogICAgICAgIHJlc3VsdCA9IDU7CiAgICB9CiAgICBlbHNlIGlmICgodmFsdWUgPj0gJ20nICYmIHZhbHVlIDw9ICdvJykpCiAgICB7CiAgICAgICAgcmVzdWx0ID0gNjsKICAgIH0KICAgIGVsc2UgaWYgKCh2YWx1ZSA+PSAncCcgJiYgdmFsdWUgPD0gJ3MnKSkKICAgIHsKICAgICAgICByZXN1bHQgPSA3OwogICAgfQogICAgZWxzZSBpZiAoKHZhbHVlID49ICd0JyAmJiB2YWx1ZSA8PSAndicpKQogICAgewogICAgICAgIHJlc3VsdCA9IDg7CiAgICB9CiAgICBlbHNlIGlmICgodmFsdWUgPj0gJ3cnICYmIHZhbHVlIDw9ICd6JykpCiAgICB7CiAgICAgICAgcmVzdWx0ID0gOTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICByZXN1bHQgPSAtMTsKICAgIH0KICAgIHJldHVybiByZXN1bHQ7Cn0KCmJvb2wgaXNWYWxpZENoYXIoY2hhciB2YWx1ZSkKewogICAgaWYgKGlzYWxwaGEodmFsdWUpIHx8IHZhbHVlID09ICcgJykKICAgIHsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAgIGVsc2UKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn0=