Fra*_*lea 4 c switch-statement
可能重复:
在C中打开字符串的最佳方法
字符串(c字符数组)和switch语句一起使用的一般方法是什么?我正在查询数据库中存储为的货币
"USD"
"EUR"
"GBP"
Run Code Online (Sandbox Code Playgroud)
等等。来自PHP背景,我只需执行以下操作:
switch ($string) {
case "USD":
return "$";
break;
case "EUR":
return "€";
break;
case "GBP":
return "£";
break;
default:
return "$";
}
Run Code Online (Sandbox Code Playgroud)
在C中,case值必须是整数。我将如何在C中实现类似的功能?我最终会在一个很大的if / else块中写很多strcmp吗?另请注意,我不能简单地比较货币的第一个字符,因为某些字符(尽管在本示例中不是)以相同的字符开头。
一种方法是定义一个C字符串数组,并将其用作顺序的定义:
const char *currencies[] = {"USD", "GBP", "EUR"};
Run Code Online (Sandbox Code Playgroud)
现在,您可以搜索currencies您的字符串,并在switch语句中使用其索引。
您可以看中并-对字符串进行排序,并使用它bsearch来查找索引O(LogN)