2017-12-02 6 views
-1

私はケースで切り替えようとしていますが、数字や文字の代わりに単語を使用したいと思います。 (...)スイッチ、C言語のケース

しかし、私はCがそれをサポートしていないことを知っている:

場合は、 '終了しました'。

'some word'の使用方法を教えてください。

+1

case文で使用する一意の序数を計算するか、if文を使用します。 –

+0

あなたはそうすることはできませんが、キーワードの配列に対して単語をテストし、一致のインデックスをスイッチの大文字として使用することができます。または、固有のイニシャルで単語を持つことができ、スイッチの場合に使用します。 –

+0

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

答えて

1

switchステートメントは、いくつかのオプションの1つから選択する最適化に過ぎません。 switchステートメントは、if...then...else if...ステートメントとして実装できます。

Cでの最適化は、整数のためのものであり、文字列の魔女声明は、このようにstrcmpを使用してif...then...else if...文で、例えばだろう、それは文字列

を扱うことができませんswitch声明betwee

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

一つの違いとif..then..else文は、後者が知っている「スルー落ちる」と、それは(推奨されている)gotoを使用していない限りシミュレートすることができないないということです。

あなたの質問へのコメントは、ブルートフォースストリング比較よりも高度な方法を提案します。これらのメソッドはすべて、文字列の固有の特性を使用して、switchを実装できる数に変換しようとします。