谁能告诉我如何将a转换char为int?char c[]={'1',':','3'};int i=int(c[0]);printf("%d",i);当我尝试时,它给出49。
3 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
在过去,当我们可以假设大多数计算机使用ASCII时,我们只会
int i = c[0] - '0';
但是在如今的Unicode中,这不是一个好主意。如果您的代码必须在非ASCII计算机上运行,这绝不是一个好主意。
编辑:尽管它看起来有点黑,但显然它是由标准保证的。谢谢@Earwicker。
有只小跳蛙
TA贡献1824条经验 获得超8个赞
标准功能atoi()可能会做您想要的。
一个使用“ atoi”的简单示例:
#include <unistd.h>
int main(int argc, char *argv[])
{
int useconds = atoi(argv[1]);
usleep(useconds);
}
素胚勾勒不出你
TA贡献1827条经验 获得超9个赞
实际上C标准确实可以保证这一点。第2.2.1段“在源和执行基本字符集中,上述十进制数字列表中的每个字符在0之后的值都应比前一个值大1。” 因此,您的答案在符合标准的C实现中完全正确。
- 3 回答
- 0 关注
- 447 浏览
添加回答
举报
0/150
提交
取消