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

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

例如:

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

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

b=a; //此时b的值也是123
最新回答
风起半山

2024-11-05 05:08:40

第一: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;

}
她ゝ那么高傲

2024-11-05 07:16:43

第二:如果是char* 类型的话或者char a[]类型则可以使用以下代码转换成整数
梦已隔江南

2024-11-05 11:10:15

b=(*a-'0')*100+(*(a+1)-'0')*10+(*(a+2)-'0')*1;
a定义为char型,1、2、3分别以ASCLL码储存在a对应的地址后,而b为整型,因此减去0的ASCLL码值。
囚我在心上

2024-11-05 07:32:02

atoi()字符串转int
类似的还有 atof等
如梦如幻

2024-11-05 16:30:21

1楼说得对。