0

您好,我正在尝试将 const 字符串转换为整数数组,但是当我尝试时它不允许这样做。我的代码是:

int isRegistered(const char str[]) {

int isbnInt[10], i;
//char isbnArray[10];

//isbnArray = str;  ----> something I tried

for (i = 0; i < 10; i++)
{
    isbnInt[i] = atoi(str[i]);
    cout << isbnInt[i] << endl;
}
}

但是当我尝试编译它时,我收到一条错误消息“从 char 到 const char* 的转换无效”

4

3 回答 3

3

atoicall 需要const char *争论,当你通过 achar时,这就是问题所在。

您只需执行以下操作即可将字符转换为数字。这会从字符本身中减去 ascii 值0(因为 0-9 在 ascii 代码中是按顺序增加的。)

isbnInt[i] = str[i] - '0';
于 2013-02-07T03:30:40.060 回答
0

尝试:

for (i = 0; i < 10; i++)
{
    isbnInt[i] = str[i] - '0';
    cout << isbnInt[i] << endl;
}

atoiconst char*作为输入而不是单个字符。

于 2013-02-07T03:31:16.540 回答
0

你的代码也可以写成:

for (i = 0; i < 10; i++)
{
    char foo = str[i];
    isbnInt[i] = atoi(foo);
    cout << isbnInt[i] << endl;
}

哪个行不通(如您所见);atoi 需要一个 char*,而不是一个 char。

尝试:

 int isbm = atoi(str);

看看这是否符合您的要求。

于 2013-02-07T03:33:47.480 回答