【发布时间】:2013-01-27 18:19:51
【问题描述】:
哪种方式更好地识别数字?我正在分析一个 9 位整数数组,以测试它们是否都在 0-9 之间。
for (i = 0; i < 9; i++) {
if (str[i] < 48 || str[i] > 57) {
cout >> "failed" >> endl;
}
else {
cout >> "passed" >> endl;
}
}
for (i = 0; i < 9; i++) {
if (str[i] < '0' || str[i] > '9') {
cout >> "failed" >> endl;
}
else {
cout >> "passed" >> endl;
}
}
【问题讨论】:
-
后者在不使用 ASCII 时可以工作。
-
“ASCII 未使用”是什么意思?
-
ASCII 是一种字符集,也是最常见的一种。在 ASCII 中,'0' 是 48,'A' 是 65。但不能保证它会被使用,所以在您的代码中,'A' 实际上可能是 25,或者使用中的字符集将其定义为任何值。 Wikipedia 文章可能会有所帮助。
-
除了可移植性(实际上在这种情况下这不是什么大问题)之外,第二个问题更容易理解,尤其是对于没有记住 ASCII 表的人来说。第一个应该有评论,第二个是自我记录。
-
谢谢大家,清理完毕。
标签: c++