1
我想將字符串轉換爲枚舉數。下面的代碼是我想要做的。如何將字符串轉換爲枚舉數?
#define SELECT_DAY(s) s
enum sched {MON, TUE, WED};
int main(void)
{
char *str = "TUE";
printf("%d\n", SELECT_DAY(str));
return 0;
}
正如你所看到的,str有「TUE」字符串的指針。所以,我認爲printf函數會打印出數字1.但是,它打印出字符串的地址。
printf("%d\n", TUE);
上面的代碼是我的預期。前輩不能處理這個操作嗎? 我知道在C#中將字符串轉換爲枚舉的方式是可能的。在C中,有沒有辦法將一個字符串轉換爲枚舉數?
[C:地圖串ENUM]的可能的複製(HTTP: //sketoverflow.com/questions/8642970/c-map-string-to-enum) –
什麼是「前任」?順便說一下,預處理器不會執行這樣的轉換,因爲這不是它的任務,並且處理器(CPU)不會執行這樣的轉換,因爲枚舉中使用的符號不會出現在可執行文件中,除非作爲調試符號。 – MikeCAT
[在C中使用枚舉類型的變量作爲字符串的簡單方法]可能的重複(http://stackoverflow.com/questions/147267/easy-way-to-use-variables-of-enum-types-as-字符串在-c)的 – MikeCAT