C++ 枚举 字符串
时间: 2024-02-13 14:07:06 浏览: 146
C++ 中的枚举类型可以与字符串进行关联。我们可以使用枚举类型的成员作为字符串的标识符,这样可以方便地进行字符串和枚举类型之间的转换。例如:
```c++
enum Fruit { APPLE, BANANA, ORANGE };
std::string fruitNames[] = {"Apple", "Banana", "Orange"};
// 将枚举类型转换为字符串
Fruit fruit = APPLE;
std::string fruitName = fruitNames[fruit];
// 将字符串转换为枚举类型
std::string input = "Banana";
Fruit selectedFruit = APPLE; // 默认值
for (int i = 0; i < 3; i++) {
if (input == fruitNames[i]) {
selectedFruit = static_cast<Fruit>(i);
break;
}
}
```
在上面的例子中,我们使用枚举类型 `Fruit` 来表示水果的种类,同时定义了一个字符串数组 `fruitNames` 来保存每个枚举成员对应的字符串。我们可以通过枚举类型的成员索引访问相应的字符串,也可以通过字符串查找相应的枚举类型成员。注意,字符串和枚举类型成员的索引是一一对应的,因此我们需要使用一个循环来进行查找。
相关问题
C++ 枚举转字符串
在C++中,可以使用枚举常量结合`std::stringstream`或者`std::ostringstream`将枚举值转换成字符串。这里有一个基本的例子:
```cpp
enum class MyEnum { Value1, Value2, Value3 };
void enumToString(MyEnum e, std::string& result) {
switch (e) {
case MyEnum::Value1:
result = "Value1";
break;
case MyEnum::Value2:
result = "Value2";
break;
case MyEnum::Value3:
result = "Value3";
break;
default:
result = "Unknown"; // 对于未列出的枚举值,可以选择默认字符串
}
}
int main() {
MyEnum myEnum = MyEnum::Value2;
std::string str;
enumToString(myEnum, str);
std::cout << "MyEnum as string: " << str << std::endl;
return 0;
}
```
这个函数`enumToString`接收一个枚举值并将其转换为相应的字符串存储在`result`变量中。
c++创建字符串枚举
在C++中,你可以通过枚举类型(enumeration)来创建一个字符串类型的枚举。这种做法通常用于定义一组预定义的、常量性质的字符串值,它们可以作为程序中的标识符使用。下面是一个简单的例子:
```cpp
// 定义一个名为Color的字符串枚举
enum class Color {
Red = "Red",
Green,
Blue = "Blue"
};
int main() {
Color currentColor = Color::Red;
std::cout << "Current color is: " << static_cast<std::string>(currentColor) << std::endl; // 输出 "Current color is: Red"
return 0;
}
```
在这个例子中,`Color`是一个枚举类,其中包含了三个成员:`Red`,`Green`,和`Blue`,每个都有对应的字符串值。通过`static_cast<std::string>(currentColor)`,我们可以将枚举值转换为字符串形式。
阅读全文