说我有,
char x[0] = '1';
char x[1] = '2';
我需要将这两个'连接'成整数变量
int y = 12;
我该怎么做?
答案 0 :(得分:1)
只要您使用NULL终止符终止x
,就可以使用atoi
。
#include <stdlib.h>
#include <stdio.h>
int main() {
char x[3];
x[0] = '1';
x[1] = '2';
x[2] = '\0';
int x_int = atoi(x);
printf("%i", x_int);
return 0;
}
答案 1 :(得分:1)
最简单的方法,如果它真的只有两位数而且你不想&#34;上去&#34; (复杂性)字符串为了使用字符串转换函数,只是使用数字的基本结构直接计算它。每个数字的价值都比右边的数字多10倍。
const char x[2] = { '1', '2' };
const int value = 10 * (x[0] - '0') + (x[1] - '0');
这会通过计算value
将12
设置为10 * 1 + 2
。
减去0
,意味着&#34;目标的字符编码&#34;中的数字零的数值,因为C要求按顺序编码十进制数字。