首頁 > 後端開發 > C++ > 如何在 C 中將字串轉換為枚舉?

如何在 C 中將字串轉換為枚舉?

Mary-Kate Olsen
發布: 2024-11-11 04:13:03
原創
522 人瀏覽過

How to Convert a String to an Enum in C  ?

在C 中將字串轉換為枚舉

在C 中,沒有與C# 的Enum.Parse 直接等效的用於將字串轉換為枚舉的方法。一個常見的解決方案是使用 switch 語句,但對於大型枚舉列表,這種方法變得笨拙。

使用映射或無序映射

一個優雅的解決方案是利用std::map 或std::unordered_map 將字串鍵與對應的枚舉值關聯起來。這樣可以實現高效率的查找和檢索。

std::unordered_map<std::string, MyEnum> enumMap {
    {"foo", MyEnum::Foo},
    {"bar", MyEnum::Bar}
};
登入後複製

要將字串轉換為列舉:

MyEnum myEnum = enumMap[myString];
登入後複製

使用 C 11 簡單初始化

使用 C 11及更高版本,填充地圖可能會顯著簡化:

static std::unordered_map<std::string, MyEnum> const table = {
    {"a", MyEnum::a},
    {"b", MyEnum::b}
};
登入後複製

然後,檢索枚舉值:

auto it = table.find(myString);
if (it != table.end()) {
    return it->second;
} else {
    // Handle error
}
登入後複製

以上是如何在 C 中將字串轉換為枚舉?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板