如何在C中将char转换为整数?

谁能告诉我如何将a转换char为int?


char c[]={'1',':','3'};


int i=int(c[0]);


printf("%d",i);

当我尝试时,它给出49。


杨__羊羊
浏览 456回答 3
3回答

噜噜哒

在过去,当我们可以假设大多数计算机使用ASCII时,我们只会int i = c[0] - '0';但是在如今的Unicode中,这不是一个好主意。如果您的代码必须在非ASCII计算机上运行,这绝不是一个好主意。编辑:尽管它看起来有点黑,但显然它是由标准保证的。谢谢@Earwicker。

有只小跳蛙

标准功能atoi()可能会做您想要的。一个使用“ atoi”的简单示例:#include <unistd.h>int main(int argc, char *argv[]){&nbsp; &nbsp; int useconds = atoi(argv[1]);&nbsp;&nbsp; &nbsp; usleep(useconds);}

素胚勾勒不出你

实际上C标准确实可以保证这一点。第2.2.1段“在源和执行基本字符集中,上述十进制数字列表中的每个字符在0之后的值都应比前一个值大1。”&nbsp;因此,您的答案在符合标准的C实现中完全正确。
打开App,查看更多内容
随时随地看视频慕课网APP