如何在字符限制和空间开关情况下输出无效输入?



这是我得到的作业,它是基于c++程序将字母转换为电话号码。

然而,我的讲师要求补充细节,包括:

  1. 插入字母作为输入
  2. 要输入的整个字母表为15,包括"空格";如果超过计数,则显示相应的消息。
  3. 程序将显示数字作为字母值的表示,作为电话号码。
  4. 字母的数字从2到9;每个字母表示的每个数字都指所提供的程序。
  5. 1表示"space">
  6. 在程序中添加哨兵循环。用户输入数字"0"控制停止程序循环

不幸的是,我还没有弄清楚如何实现第2和第5点。下面是我当前的代码:

#include <iostream>
using namespace std;
int main()
{
char letter;
int counter = 0;

cout << "Enter Name" << endl;

while (cin.get(letter) && counter < 15) {

if (letter == '0') { 
break; 
}

if (letter != ' ' && letter >= 'A' && letter <= 'z') {
counter++; 
if (letter > 'Z') {
letter = (int)letter-32; 
}

if (counter < 15); {
cout << "";
}
if (counter > 15); { 
cout << "Invalid Input" << endl;
break; 
}
switch (letter) {
case ' ':
case 'n':  
case 't':  
cout << "1";
break;
case 'A':
case 'B':
case 'C':
cout << "2";
break;
case 'D':
case 'E':
case 'F':
cout << "3";
break;
case 'G':
case 'H':
case 'I':
cout << "4";
break;
case 'J':
case 'K':
case 'L':
cout << "5";
break;
case 'M':
case 'N':
case 'O':
cout << "6";
break;
case 'P':
case 'Q':
case 'R':
case 'S':
cout << "7";
break;
case 'T':
case 'U':
case 'V':
cout << "8";
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
cout << "9";
break;
default:
cout << "Invalid input";
break;
}
}
}

return 0;
}

我试过谷歌搜索,但几乎没有答案,尤其是开关空间部分!

#include<iostream>
using namespace std;
int main()
{
string phone;
int counter=0;
cout<<"Enter Name:";
getline(cin,phone);
counter = phone.length();
if(counter>15) {
cout<<"Invalid Input"<<endl;
return 0; 
}
for(int i=0;i<phone.length();i++)
{
char letter = phone[i];
switch(letter)
{
case ' ': cout<<"1 "; break;
case 'A':
case 'B':
case 'C':
if(letter=='A') cout<<"2 "; 
else if(letter=='B') cout<<"22 "; 
else if(letter=='C') cout<<"222 "; break;
case 'D':
case 'E':
case 'F':
if(letter=='D') cout<<"3 "; 
else if(letter=='E') cout<<"33 "; 
else if(letter=='F') cout<<"333 "; break;
case 'G':
case 'H':
case 'I':
if(letter=='G') cout<<"4 "; 
else if(letter=='H') cout<<"44 "; 
else if(letter=='I') cout<<"444 "; break;
case 'J':
case 'K':
case 'L':
if(letter=='J') cout<<"5 "; 
else if(letter=='K') cout<<"55 "; 
else if(letter=='L') cout<<"555 "; break;
case 'M':
case 'N':
case 'O':
if(letter=='M') cout<<"6 "; 
else if(letter=='N') cout<<"66 "; 
else if(letter=='O') cout<<"666 "; break;
case 'P':
case 'Q':
case 'R':
case 'S':
if(letter=='P') cout<<"7 "; 
else if(letter=='Q') cout<<"77 "; 
else if(letter=='R') cout<<"777 "; 
else if(letter=='S') cout<<"7777 "; break;
case 'T':
case 'U':
case 'V':
if(letter=='T') cout<<"8 "; 
else if(letter=='U') cout<<"88 "; 
else if(letter=='V') cout<<"888 "; break;
case 'W':
case 'X':
case 'Y':
case 'Z':
if(letter=='W') cout<<"9 "; 
else if(letter=='X') cout<<"99 "; 
else if(letter=='Y') cout<<"999 "; 
else if(letter=='Z') cout<<"9999 "; break;
default:
cout<<"Invalid Input"<<endl;
}
}
}

相关内容

最新更新