首页 > 解决方案 > 根据字符获取数组的索引

问题描述

我有一个数组和一个获取字符的函数,这个字符应该代表数组中的特定索引。例如,“a”代表索引 0,“b”代表索引 1,“c”代表索引 2...

我不想使用开关盒!

void func(char ch, object* arr)
{
    int index = ch//do something
    arr[index]
}

有没有什么方法可以在没有 switch case 的情况下做到这一点,优雅的方式不需要很多行代码。

标签: c++arrays

解决方案


您可以通过获取该字符的 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 表


推荐阅读