将const字符串转换为int数组?

时间:2013-02-07 03:28:43

标签: c++

您好我试图将一个const字符串转换为一个int数组但是当我尝试它时不允许它。我的代码是:

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 *的转换无效”

3 个答案:

答案 0 :(得分:3)

atoi调用期望const char *辩论,当您传递char时,这就是问题所在。

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

isbnInt[i] = str[i] - '0';

答案 1 :(得分:0)

尝试:

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

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

答案 2 :(得分: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);

并查看是否符合您的要求。