6

如何将字符串的第 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;
}

但它不起作用。

4

2 回答 2

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';
于 2012-08-26T18:23:41.087 回答
0

试试这个:

char a[2];
a[1] = '\0';
for (size_t i = 0; i < str.size(); i++) {
    a[0] = str[i];
    ints[i] = atoi(a);
}
于 2012-08-26T18:25:24.693 回答