2017-12-02 270 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的某个数字。