如何将字符数组的多个元素转换为整数?

时间:2016-10-18 08:11:30

标签: c char integer type-conversion

说我有,

char x[0] = '1';
char x[1] = '2';

我需要将这两个'连接'成整数变量

int y = 12;

我该怎么做?

2 个答案:

答案 0 :(得分:1)

只要您使用NULL终止符终止x,就可以使用atoi

Example

#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');

这会通过计算value12设置为10 * 1 + 2

减去0,意味着&#34;目标的字符编码&#34;中的数字零的数值,因为C要求按顺序编码十进制数字。