如何在C语言中将字符数组转换为整数?

3
在下面的代码中,我如何将字符数组x转换为整数89?谢谢。
int main(int argc,char *argv[]){
    char y[13] = "0123456789012";
    char x[3];
    int integer_value;

    x[0] = y[8];
    x[1] = y[9];
    x[3] = '\0';

    integer_value=atoi(x);
}

1
应该是 x[2] = '\0';,而不是 x[3],但除此之外,那个代码可以工作。问题是什么? - Daniel Fischer
1
应该是 x[2] = '\0';x[3] 超出了边界。 - hmjd
2
你编写的代码完全按照你的要求执行...只需将x[2]='\0'即可。 - Felice Pollano
此外,由于字符串字面值中存在空字符,因此“y”也会短一个字符。 - hmjd
抱歉,我不知道我怎么错过了 x[3] :( - johan
1个回答

6
你完成了;atoi()是将字符串转换为整数的一种方式。你也可以使用strtol()sscanf()更新:当然,假设你修复了终止符,即设置x[2]='\0';而不是x[3]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接