如何使用atoi()将char数组的元素转换为int?

时间:2015-08-14 16:44:58

标签: c pointers atoi

以下是代码:

char *P_char = malloc(sizeof(char)*10);

int i = 0;

for(i; i < 10; i++)
{
    P_char[i] = (char)(i + 48);
}

以下是我为了使用atoi而试过的一些代码

printf("The int result is: %d", atoi(P_char[4]));

int converted = atoi(P_char[4]);
printf("The int result is: %d", converted );

const char x = P_char[4];
int converted = atoi(x);
printf("The int result is: %d", converted );

但仍然无法奏效。我无法确定atoi()是否不能用于指针。有这样的事实吗?

注意:当我说没有工作时,我的意思是程序退出时会显示错误代码而不是执行到最后。

2 个答案:

答案 0 :(得分:2)

如果你有这样的陈述

const char x = P_char[4];

然后输出存储在x中的数字作为整数,您可以通过以下方式

printf("The int result is: %d", x - '0' );

对于函数atoi,它将应用于字符串而不是单个字符。

答案 1 :(得分:0)

函数atoi用于将C字符串转换为数字。它被声明为:

int atoi(const char *nptr);

您将char值作为参数。你必须使用这样的东西:

const char *s = "4711";
int i = atoi(s)