형들

enum Type {
 V_NULL,

 V_BOOL,
 V_CHAR,
};

이렇게 정의가 되었다고 했을때

Type abc;
abc = V_NULL;
abc = V_BOOL;
이런식으로 하드코딩은 가능한데

char* str = \"V_NULL\";
str 변수에 enum의 엘리먼트 스트링이 저장되어있을 경우에
abc = str; 이렇게 하는게 불가능 하잖아

스트링 변수에 들어있는 엘리먼트 스트링을 어떻게 enum 엘리먼트로 변환해서 abc에 넣을 수가 있는거야?
질문이 좀 두서 없는데.. 아무리 생각해도 내 머리로는 안떠올라 형들 도움좀 부탁해 ㅠㅠ

scanf(\"%s\",str); // 사용자가 \"V_NULL\" 이나 \"V_BOOL\" 이라고 입력했다고 가정하고
abc = str; 이게 불가능하잖아

abc 에 대입할수 있는 형태는
abc  = V_NULL; 이런식밖에 안되는거잖아
위의 형식 이외에 대입할 수 있는 방법이 있는건지 물어본거야 횽들.. 부탁해 횽들 ㅠㅠ

--------------------------
if(!strcmp(\"V_NULL\",str))
  abc = V_NULL;
if(!strcmp(\"V_BOOL\",str))
  abc = V_BOOL
if(!strcmp(\"V_CHAR\",str))
  abc = V_CHAR;

이렇게 하라는 소리야? 저렇게 하면 enum 엘리먼트만 많을경우 조낸 비효율적인데 저렇게 해야하는거야?