【问题标题】:Switch statement to convert a word into digits ? C++switch 语句将单词转换为数字? C++
【发布时间】:2016-03-04 00:43:02
【问题描述】:

现在我能够制作一个程序,它只将单词的第一个字母转换为相应的数字,但在第一次转换后就停止了。 如果我在每个“案例”之后不使用“中断”,程序就会继续输出以下不是我想要的案例。

开关 (nameChar) { 案例“a”:案例“b”:案例“c”: cout

我可以让这个程序重复单词的以下字母直到单词中没有更多的字母吗?

#include <iostream>
#include<string>
using namespace std;

int main () {

    char nameChar;

    cout << "enter a name";
    cin >> nameChar;

            switch (nameChar)
        {
            case 'a': case 'b': case 'c':
                cout << "1";
                break;
            case 'd': case 'e': case 'f':
                cout << "2";
                break;
            case 'g': case 'h': case 'i':
                cout << "3";
                break;
            case 'j': case 'k': case 'l':
                cout << "4";
                break;
            case 'm': case 'n': case 'o':
                cout << "5";
                break;
            case 'p': case 'q': case 'r':
                cout << "6";
                break;
            case 's': case 't': case 'u':
                cout << "7";
                break;
            case 'v': case 'w': case 'x':
                cout << "8";
                break;
            case 'y': case 'z':
                cout << "9";
                break;
            default:
                return 0;

                char nameChar;

                cout << nameChar;
        }
    }

【问题讨论】:

  • 不要再次声明nameChar。您要求一个新的未初始化变量。

标签: c++ switch-statement character digits


【解决方案1】:

你应该在 main 中使用这样的东西:

string name;
cout << "enter a name";
cin >> name;
for (auto letter : name) {
    switch (letter) {
        //rest of your case
    }
}

因为char 意味着只存储一个字母,所以string 是一个你想用于整个字符串的类。

【讨论】:

  • 很高兴能为您提供帮助。您可以通过单击我的答案旁边的“复选标记”来关闭此主题,我将不胜感激。
  • 如果我不希望程序在用户在输入中包含数字时停止怎么办?而是只显示转换后的字母输出,包括数字。
  • 你可以把default: return 0改成default: cout &lt;&lt; letter;
  • 提醒:case语句(表达式)中不能使用字符串和字符数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-22
  • 2019-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
相关资源
最近更新 更多