c++设计数字键盘拉丁字母表有26个字符,而电话只有数字输入板。为了便于输入字母,我们做了一个对应关系。 例如,要输入B,程序要输入22.为了输入相同键上的不同字母,用户在输入之间要停顿一下。 空格' '用来指代停顿。例如2 2代表AA,22代表B输入第一行代表测试案例的数目N下面N行,每行是一个字符串输出对于每个测试案例,输出“Case #x: ",然后输出按键顺序
时间: 2024-03-12 09:44:50 浏览: 49
好的,这是一个较为简单的C++程序设计题目,我可以为你提供一些思路和代码实现。
首先,我们可以使用一个数组来存储每个字符对应的数字键。例如,字符'A'对应的数字键是2,我们可以定义一个数组`char2num`来存储这个对应关系:
```c++
char char2num[26] = {'2', '2', '2', '3', '3', '3', '4', '4', '4', '5', '5', '5', '6', '6', '6', '7', '7', '7', '7', '8', '8', '8', '9', '9', '9', '9'};
```
接下来,我们可以使用`getline()`函数从标准输入中读取每个测试案例的字符串,并遍历字符串中的每个字符。如果当前字符是空格,则输出上一个字符对应的数字键,并清空当前字符;否则,将当前字符加入到当前字符串中,等待下一个字符的输入。当遍历完整个字符串后,需要输出最后一个字符对应的数字键。
下面是完整代码实现:
```c++
#include <iostream>
#include <string>
using namespace std;
int main() {
// 数字键与字符的对应关系
char char2num[26] = {'2', '2', '2', '3', '3', '3', '4', '4', '4', '5', '5', '5', '6', '6', '6', '7', '7', '7', '7', '8', '8', '8', '9', '9', '9', '9'};
int N;
cin >> N;
cin.get(); // 读取换行符
for (int i = 1; i <= N; i++) {
string s;
getline(cin, s);
cout << "Case #" << i << ": ";
string cur = "";
for (char c : s) {
if (c == ' ') {
if (cur != "") {
cout << char2num[cur[0] - 'A'];
cur = "";
}
} else {
cur += c;
}
}
if (cur != "") {
cout << char2num[cur[0] - 'A'];
}
cout << endl;
}
return 0;
}
```
希望能对你有所帮助!
阅读全文