c++ - 字符串的第 n 个字符到 int

标签 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;
}

但它不起作用。

最佳答案

怎么样:

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';

关于c++ - 字符串的第 n 个字符到 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12132730/

相关文章:

c++ - 为什么我的字符串失去了它的值(value)?

c++ - 为什么一个空的无限循环会占用我的整个 CPU?

c++ - OpenCV C++,找到描述物体形状的方程

c++ - 返回一个 void* 数组

c++ - vector 增长时如何强制执行 move 语义?

c++ - 如何简洁地将一个数组的范围分配给另一个数组的范围?

c++ - 即使>>和getline都获取null输出,即使我正在使用字符串空白

c++ - WindowsRuntimeComponent 运行时错误

c++ - 无法在 C++ 图形中绘制对象

c++ - MVAPICH 在 MPI_Send 上挂起大于急切阈值的消息