2017-12-02 274 views
-1

我試圖做與案件切換,但我想用單詞而不是數字或字母,例如開關,案件在C

情況下, '退出':(...)

但我知道,C不支持它。

你能告訴我如何使用'某個單詞'的情況下?

+1

要麼計算在case-statements中使用的唯一序號,要麼使用if語句。 –

+0

你不能,但你可以針對關鍵字數組測試該單詞,並使用匹配的索引作爲開關案例。或者,您可以將具有唯一首字母的單詞用於開關盒。 –

+0

Chek [this](https://stackoverflow.com/questions/4014827/best-way-to-switch-on-a-string-in-c)out。 –

回答

1

A switch聲明只不過是一些優化選項而已。任何switch語句都可以作爲if...then...else if...語句來實現。

在C的優化爲整數且它不能處理字符串

從而爲串A女巫聲明將是一個if...then...else if...語句中使用strcmp,例如betwee一個switch聲明

if (strcmp(a,"hello")==0) { 
    //case "hello" 
} 
else if (strcmp(a,"world")==0) { 
    // case "world" 
} 
else { 
    // default 
} 

一個區別和if..then..else說法是,後者並不知道「落通」,它不能被模擬,除非使用goto(這是鼓勵)。

對你的問題的評論也暗示比蠻力字符串比較更高級的方法。所有這些方法都嘗試使用字符串的一些獨特特徵來轉化爲可以實施switch的某個數字。