C++字符串与枚举类型的转换
时间: 2023-11-28 07:06:04 浏览: 210
在C++中,可以通过以下方式进行字符串和枚举类型之间的转换:
1. 将枚举类型转换为字符串:
可以使用一个名为 `to_string` 的函数将枚举类型转换为字符串。例如,如果我们有一个名为 `Color` 的枚举类型,其中包含 RED、GREEN 和 BLUE 三个选项,则可以使用以下代码将枚举类型转换为字符串:
```c++
enum class Color {RED, GREEN, BLUE};
std::string colorString = std::to_string(static_cast<int>(Color::RED));
```
2. 将字符串转换为枚举类型:
可以使用 `std::map` 或 `switch` 语句将字符串转换为枚举类型。例如,如果我们有一个名为 `ColorString` 的字符串,其中包含 "RED"、"GREEN" 或 "BLUE" 三个选项,则可以使用以下代码将字符串转换为枚举类型:
```c++
enum class Color {RED, GREEN, BLUE};
std::map<std::string, Color> colorMap = {{"RED", Color::RED}, {"GREEN", Color::GREEN}, {"BLUE", Color::BLUE}};
std::string colorString = "RED";
Color color = colorMap[colorString];
// 或者使用 switch 语句
Color stringToColor(const std::string& colorString)
{
if (colorString == "RED")
return Color::RED;
else if (colorString == "GREEN")
return Color::GREEN;
else if (colorString == "BLUE")
return Color::BLUE;
else
throw std::invalid_argument("Invalid color string: " + colorString);
}
```
阅读全文