对早期版本的评论这个答案 https://stackoverflow.com/questions/42055919/how-do-i-take-in-a1-style-rowcolumn-specifications-as-input/42055958#42055958我的提醒我一个事实,我不能假设'A'
, 'B'
, 'C'
等具有连续的数值。我有点假设 C 或 C++ 语言标准保证了这种情况。
那么,如何判断连续字母字符的值本身是否连续呢?或者更确切地说,如何确定我可以在单引号内表达的字符常量是否具有代表数值的 ASCII 代码?
我问的是如何在 C 和 C++ 中做到这一点。显然,C 方式也可以在 C++ 中使用,但如果有一个类似 C++ 的工具可以做到这一点,我也对此感兴趣。另外,我询问最新的相关标准(C11、C++17)。
您可以使用预处理器检查特定字符是否映射到字符集:
#include <iostream>
using namespace std;
int main() {
#if ('A' == 65 && 'Z' - 'A' == 25)
std::cout << "ASCII" << std::endl;
#else
std::cout << "Other charset" << std::endl;
#endif
return 0;
}
缺点是,您需要提前知道映射值。
数字字符'0'
- '9'
顺便说一句,保证按连续顺序出现。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)