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

How to use atoi() to convert an element of a char array to int?

代码如下:

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() 是否不应该用于指针。有这样的事实吗?

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

如果你有这样的说法

const char x = P_char[4];

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

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

至于函数 atoi 然后它应用于字符串而不是单个字符。

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

int atoi(const char *nptr);

你给了一个字符值作为参数。你必须改用这样的东西:

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