根据字符[获取数组的索引[重复]

问题描述 投票:0回答:3

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

我不想使用开关盒!

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

没有开关外壳,有没有办法做到这一点,这是一种优雅的方法,不需要很多代码。

c++ arrays
3个回答
1
投票

您可以通过获取该字符的ASCII值来实现。


0
投票

我建议使用ASCII码,请参见:https://www.ascii-code.com。例如,如果char c由用户提供,则它是可打印的char,因此与您相关的代码在(space,32)->(delete,127)之间。尽管如果使用此数组,数组大小限制为95个条目,但是您可以在该范围内接近对象数组中的任何有效单元格。arr [c-''] <=> arr [0]无需冗长的if / else / switch案例。


0
投票

由于与从az的字母相对应的整数按升序排列,因此可以如下使用static_cast<int>

© www.soinside.com 2019 - 2024. All rights reserved.