c++ - 根据字符获取数组的索引
问题描述
我有一个数组和一个获取字符的函数,这个字符应该代表数组中的特定索引。例如,“a”代表索引 0,“b”代表索引 1,“c”代表索引 2...
我不想使用开关盒!
void func(char ch, object* arr)
{
int index = ch//do something
arr[index]
}
有没有什么方法可以在没有 switch case 的情况下做到这一点,优雅的方式不需要很多行代码。
解决方案
您可以通过获取该字符的 ASCII 值来做到这一点。
void func(char ch, object* arr)
{
int index = (int)ch; //If the ch is 'a', This will return a value of 97(the ascii of lower-case a).
arr[index];
}
如果您希望索引从 0 而不是 97 开始,只需将索引减去 97:
int index = (int)ch - 97;
或更好:
int index = ch - 'a';
检查此链接以查看ASCII 表。
推荐阅读
- flutter - 如何将参数传递给 Flutter 中的侦听器?
- rest - 从 Google Play 获取应用 alpha/beta 版本号
- java - Java 8 流 - 在嵌套地图上过滤并重建
- c++ - OutputArray::create() 在线程中运行时断言失败
- java - 如何在特定时间后将新 url 加载到 web 视图中?
- java - org.springframework.web.HttpMediaTypeNotAcceptableException:在java spring boot中找不到可接受的表示
- vb.net - 如何将.pdf导出为新文件而不是固定文件名和固定文件目录?
- php - 根据PHP列从mysql获取数据
- elasticsearch - 使用 Python 请求更新 ElasticSearch 文档
- jsf - 如何改造一个
- 元素到数据表中?