当前位置: 首页 > 知识库问答 >
问题:

如何将枚举类型设置为字符串[重复]

丁弘新
2023-03-14

我有一个枚举,我想让这些枚举类型在开关情况下成为字符串。

enum WeekEnum
{
Mon = 0;
Tue = 1;
Wed = 2;
}

std::string weekEnumToStr(int n)
{
 std::string s("unknown");
switch (n)
{
case 0: { s = "Mon"; } break;
case 1: { s = "Tue"; } break;
case 2: { s = "Wed"; } break;
}
return s;
}

因此,在上面我硬编码“Mon”,而不是有一种方法,我们可以直接将枚举类型作为字符串。就目前而言,如果我在交换机案例中传递枚举类型,我将获得id 0、1或2,但我需要Mon/Tue/Wed作为字符串

共有1个答案

刘兴朝
2023-03-14

可以使用某些容器将枚举值映射到字符串。例如std::array

#include <string>
#include <array>
#include <iostream>

enum WeekEnum
{
    Mon = 0,
    Tue = 1,
    Wed = 2
};

std::array<std::string, 3> enumNames{"Mon", "Tue", "Wed"};

std::string weekEnumToStr(unsigned n)
{
    if (n < 3)
    {
        return enumNames[n];
    }
    return "unknown";
}

int main()
{
    std::cout << weekEnumToStr(Tue);
}
 类似资料:
  • 例如,我如何做类似的事情: 结果示例:

  • 我有一个枚举文件,在其中我为PaymentTypes定义了一个对象: 这样我就有了可以使用的东西:

  • 考虑一下,我得到了以下枚举类: 我想指定ostream操作符( 并获得以下输出,这是Foo。 我的问题是: 是否有存储枚举“名称说明符”的地方?(即,对于枚举类TestEnum,它是None、Foo和Bar),因此我可以编写一个函数(或者至多是函数模板)来指定TestEnum的ostream操作符,例如: 到目前为止,我是这样做的: 我见过一些使用库的解决方案,但这次我不希望使用它。

  • 本文向大家介绍Java将枚举转换为字符串,包括了Java将枚举转换为字符串的使用技巧和注意事项,需要的朋友参考一下 示例 有时您想将枚举转换为String,有两种方法可以实现。 假设我们有: 那么,我们如何将类似的东西转换Fruit.APPLE为"APPLE"? 使用转换 name() name()是一个内部方法,enum该方法返回String枚举的表示形式,返回值精确String表示枚举值的定义

  • 我在TypeScript中定义了以下枚举: 现在在我的函数中,我接收颜色作为字符串。我已经尝试了以下代码: 如何将该值转换为枚举?

  • 我的JSON如下所示: 我的课程如下所示: 如何反序列化到映射如和到