c++ - 有没有更简洁的方法来写这个? (数字到字符串)

标签 c++

我做了一个数字到数字的转换器,但它的编写方式似乎太冗长了。 我好像有人在谈论使用开关。我应该用 switch 重写它还是有更好的写法?

string numberToString(int n)
{
  if (n == 0)
    return "zero";
  if (n == 1)
    return "one";
  if (n == 2)
    return "two";
  if (n == 3)
    return "three";
  if (n == 4)
    return "four";
  if (n == 5)
    return "five";
  if (n == 6)
    return "six";
  if (n == 7)
    return "seven";
  if (n == 8)
    return "eight";
  if (n == 9)
    return "nine";
  else
    return "?";
}

最佳答案

尝试使用数组文字。

string numberToString(int n) {
  return (n >= 0 && n <= 9) ?
    (string[]){
      "zero",
      "one",
      "two",
      "three",
      "four",
      "five",
      "six",
      "seven",
      "eight",
      "nine",
    }[n]
  :
    "?";
}

关于c++ - 有没有更简洁的方法来写这个? (数字到字符串),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54728531/

相关文章:

c++ - 将程序集移植到 C/C++?

c++ - qt c++ "QString::number"不保留所需的小数位

c++ - C/C++ 不确定值 : Compiler optimization gives different output (example)

c++ - 如何在两组上做双指针技术

c++ - 在包含防护中使用 #error 指令

c++ - 基于文本的 C++ 终端 GUI 库

c# - 如何使用 EnvDTE 为 VC 项目设置链接器选项

c++ - 如何在小部件上单击 "What' s“此”按钮时得到通知?

c++ - 迭代求和中的段错误

c++ - 什么是从 visual c++ 到 sql 的好 api