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

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

例如:

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

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

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

char a;int b;a=SBUF;//假如接收到的a的值是123(也就是a="123")
所谓a="123",这是不可能的(这个字符串需要4个字节才能保存,而a只有一个字节)。
如果是char a;
a=123;
则a中保存的是一个字符的ASCII值,即a的值是一个字符(也就是字符'{')。
如果想要让它转换为int型的123,是非常方便的。
int b=a;
就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-06-26
此类的转换最好使用接口转换 atoi
例如 char c[] = "123";
int a = atoi(c);
不建议强制转换,不同类型转换有的没问题,有的存在风险,望采纳
第2个回答  2019-06-25
举个例子
int a; //转换的目标变量。
char c = '7'; //要转换的字符。
c = a - '0';
这样得到的就是对应的值了,即c = 7。本回答被网友采纳
相似回答