字符串的第n个字符到int

时间:2012-08-26 18:21:39

标签: c++

如何将字符串的第n个字符转换为数字?我有一个长数字表示为字符串,我想制作一个数组,其中每个字符将是单独的数字。我试过跟随一段代码:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    string str ="73167176531330624919225119674426574742355349194934969835203127745063262395783180169848018";
    int ints[1000] = {0};

    for (int i = 0; i < str.size(); i++)
    {
        istringstream ss(str[i]);
        ss >> ints[i];
    }

    cout << ints[9] << endl;

    return 0;
}

但它不起作用。

2 个答案:

答案 0 :(得分:9)

怎么样:

for (int i = 0; i < str.size(); i++)
    if (isdigit(str[i]))
        ints[i] = str[i] - '0';

或者也许:

for (string::const_iterator it = str.begin();
     it != str.end(); it++)
         if (isdigit(*it))
             ints[i] = *it - '0';

答案 1 :(得分:0)

试试这个:

char a[2];
a[1] = '\0';
for (size_t i = 0; i < str.size(); i++) {
    a[0] = str[i];
    ints[i] = atoi(a);
}