【发布时间】:2012-02-23 16:20:51
【问题描述】:
C++ 实现必须将字符 '0'-'9' 设置为具有连续的数值,即:
'0' -> 0+n
'1' -> 1+n
m -> m+n
'9' -> 9+n
在isdigit([分类](22.3.3.1字符分类))的文档中找不到提到它*,
我也无法在语言环境文档中找到它(但也许我看的不够仔细)。
在 2.3 字符集中,我们发现
基本源字符集由 96 个字符组成:空格字符、控制字符表示 水平制表符、垂直制表符、换页和换行符,以及以下 91 个图形字符
但它没有提到任何排序(但也许我没有仔细看)。
*:有趣的脚注:
在循环中使用时,缓存ctype facet并直接使用[而不是isdigit()等,结束注释],或者使用ctype::is的向量形式会更快。
【问题讨论】:
-
为什么要投票赞成:
This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion.我有事实、参考资料、具体的专业知识,答案可能不涉及征求意见、辩论、争论、投票,而是简单地参考标准,所以也没有扩展讨论?有没有高阶模组的人? -
它不在语言环境中,因为它也必须处理其他数字。 (例如
Ⅿ;))
标签: c++ numbers ascii numerical digits