c++

如何将字符串转换为C++枚举类

小樊
153
2024-07-09 00:58:27
栏目: 编程语言

要将字符串转换为C++枚举类,您可以使用一组if-else语句或者switch语句来实现。首先,定义一个枚举类,然后编写一个函数来将字符串转换为枚举类的值。下面是一个示例代码:

#include <iostream>
#include <string>

enum Fruit {
    APPLE,
    BANANA,
    ORANGE
};

Fruit stringToEnum(const std::string& str) {
    if (str == "APPLE") {
        return APPLE;
    } else if (str == "BANANA") {
        return BANANA;
    } else if (str == "ORANGE") {
        return ORANGE;
    } else {
        // handle invalid string input
        std::cerr << "Invalid input string" << std::endl;
        return static_cast<Fruit>(-1); // or throw an exception
    }
}

int main() {
    std::string fruitStr = "BANANA";
    Fruit fruit = stringToEnum(fruitStr);

    switch (fruit) {
        case APPLE:
            std::cout << "It's an apple" << std::endl;
            break;
        case BANANA:
            std::cout << "It's a banana" << std::endl;
            break;
        case ORANGE:
            std::cout << "It's an orange" << std::endl;
            break;
        default:
            break;
    }

    return 0;
}

在上面的示例中,我们定义了一个Fruit枚举类,然后编写了一个stringToEnum函数来将字符串转换为对应的枚举值。在main函数中,我们将字符串"BANANA"转换为Fruit枚举值,并使用switch语句打印出相应的输出。您可以根据需要扩展这个示例代码来处理更多的枚举值和字符串。

0
看了该问题的人还看了