-
噜噜哒
在过去,当我们可以假设大多数计算机使用ASCII时,我们只会int i = c[0] - '0';但是在如今的Unicode中,这不是一个好主意。如果您的代码必须在非ASCII计算机上运行,这绝不是一个好主意。编辑:尽管它看起来有点黑,但显然它是由标准保证的。谢谢@Earwicker。
-
有只小跳蛙
标准功能atoi()可能会做您想要的。一个使用“ atoi”的简单示例:#include <unistd.h>int main(int argc, char *argv[]){ int useconds = atoi(argv[1]); usleep(useconds);}
-
素胚勾勒不出你
实际上C标准确实可以保证这一点。第2.2.1段“在源和执行基本字符集中,上述十进制数字列表中的每个字符在0之后的值都应比前一个值大1。” 因此,您的答案在符合标准的C实现中完全正确。