如何将字符串的第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;
}
但它不起作用。
答案 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);
}