【问题标题】:Switch, case in C [duplicate]开关,C中的案例[重复]
【发布时间】:2017-12-02 17:38:49
【问题描述】:

我正在尝试使用大小写进行切换,但我想使用单词而不是数字或字母,例如

案例“退出”:(...)

但我知道 C 不支持它。

你能告诉我如何使用“some word”以防万一吗?

【问题讨论】:

  • 要么计算一个唯一的序数以在 case 语句中使用,要么使用 if 语句。
  • 您不能,但您可以针对关键字数组测试单词,并将匹配的索引用作切换案例。或者,您可以使用具有唯一首字母的单词并将其用于 switch case。
  • Chek this out.

标签: c switch-statement case


【解决方案1】:

switch 语句只不过是在众多选项之一中进行的一些优化。任何 switch 语句都可以实现为 if...then...else if... 语句。

C 中的优化是针对整数的,它不能处理字符串

因此,字符串的女巫语句将是使用strcmpif...then...else if... 语句,例如

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

switch 语句和 if..then..else 语句之间的一个区别是后者不知道“跌倒”,除非使用 goto(不鼓励这样做),否则无法模拟。

您的问题的 cmets 还建议了比蛮力字符串比较更高级的方法。所有这些方法都试图使用字符串的某些独特特征来转换为可以实现switch 的某个数字。

【讨论】:

    猜你喜欢
    • 2022-01-02
    • 1970-01-01
    • 2021-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-21
    相关资源
    最近更新 更多