C에서 문자열을 Enum으로 변환
C에서는 문자열을 열거형으로 변환하기 위한 C#의 Enum.Parse와 직접적으로 동등한 것이 없습니다. 일반적인 해결책 중 하나는 switch 문을 사용하는 것이지만 큰 열거형 목록의 경우 이 접근 방식은 다루기 어렵습니다.
Map 또는 Unordered Map 사용
우아한 해결책은 다음과 같습니다. 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!