C语言char类型的123怎么转换成 int类型的123?

串口接受的数据是char类型的a ,要怎么转换为int类型并且值不变。

例如:

char* a;
int b;
*a=SBUF; //假如接收到的a的值是123 (也就是 a="123")

/**
*
*这里要怎么写,其他能达到同样效果的方法也行
*
**/

b=a; //此时b的值也是123

第一:a应该是 char* 或者是 char a[]类型,不应该是 char类型吧
第二:如果是char* 类型的话或者char a[]类型则可以使用以下代码转换成整数
int charsToInt(char *a,int length){
int res = 0;
for(int i = 0;i<length;i++){
int temp = a[i] - '0';
res = res*10+temp;

}
return res;

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-26
第二:如果是char* 类型的话或者char a[]类型则可以使用以下代码转换成整数
第2个回答  2019-06-26
b=(*a-'0')*100+(*(a+1)-'0')*10+(*(a+2)-'0')*1;
a定义为char型,1、2、3分别以ASCLL码储存在a对应的地址后,而b为整型,因此减去0的ASCLL码值。
第3个回答  2019-06-26
atoi()字符串转int
类似的还有 atof等
第4个回答  2019-06-25
1楼说得对。
相似回答