ein*_*ica 3 c c++ ascii ebcdic language-lawyer
对早期版本的评论这个回答我的提醒我的事实,我不能想当然地认为'A','B','C'等有连续的数值.我有点假设C或C++语言标准保证这是这种情况.
那么,我该如何确定连续字母字符的值本身是否连续?或者更确切地说,我如何确定单引号内可以表达的字符常量是否具有数字值的ASCII代码?
我问的是如何在C和C++中做到这一点.显然C语言也适用于C++,但是如果有一个C++ ish工具来做这个我也对它感兴趣.另外,我问的是最新的相关标准(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;
}
Run Code Online (Sandbox Code Playgroud)
缺点是,您需要事先知道映射的值.
数字字符'0'- '9'保证以连续顺序BTW出现.
| 归档时间: |
|
| 查看次数: |
400 次 |
| 最近记录: |