【发布时间】:2017-10-28 04:01:24
【问题描述】:
我正在开发一个将 ascii 代码转换为数组索引的简单函数,但我在 else-if 语句方面遇到了一些问题。
int getIndex(char character) {
int code = int(character);
int index = -1;
if (code == int(' ')){
index = 26;
} else if (int('a') <= code <= int('z')) {
index = code - int('a');
}
return index;
}
if 条件可以正常工作并在空格上触发,但 else if 语句在其他情况下触发,无论字符是否在 a 到 z 范围内。有我看不到的问题吗?
【问题讨论】:
-
这不是问题,但您不需要将
' '(或任何其他字符文字)转换为int;编译器会将其转换为与==另一侧的int匹配。
标签: c++ if-statement