C++ 实现必须将字符 '0'-'9' 设置为具有连续的数值,即:
'0' -> 0+n
'1' -> 1+n
m -> m+n
'9' -> 9+n
我在isdigit
([classification] (22.3.3.1 Character classification)) *的文档中找不到它,在语言环境文档中也找不到它(但也许我看起来不够努力)。
在 2.3 字符集中,我们发现
基本源字符集由 96 个字符组成:空格字符、表示水平制表符、垂直制表符、换页符和换行符的控制字符,以及以下 91 个图形字符
但它没有提到任何排序(但也许我看起来不够努力)。
* : 有趣的脚注:
在循环中使用时,缓存 ctype<> facet 并直接使用它会更快[而不是 isdigit() 等,结束注释],或者使用 ctype<>::is 的向量形式。