在C语言中的字符串都是以ASCII码的形式存放的。如数字‘1’在ASCII中存放的就是49.
char i=9;
int a;
a=i;
上个例子中,你以为a得到的结果会是10,但是你运行一下发现其实这个时候i给a赋的值是 ‘59’。这时候想要得到你想要的数,也就是9方法有很多。
一、用int atoi(const char *)它会返回给你一个整数值。但是注意这个的头文件是在"#include<stdlib>"中的。
如 atoi('1234') ;//它会给你返回一个整形1234
二、因为整数型在ASCII码表中是线性排列的,及从48到57 对应着是 0到9;
char i=9;
int a;
a=i-48;
我们在最后赋值时候加一个“-48”就可以得到单个整形数字。如果是在char 类型的数组中存放的,那么用把他们用十进制拼凑即可:
char a[]='1234';
int b,i;
b=a[0]-48;
for(i=1;i<4;i++)
b=b*10+a[i]-48;
printf("%d",b);
上述写法也就可以自己写一个 atoi函数出来。