读取整数的个别数字

时间:2015-02-12 23:00:50

标签: c++ arrays

我有一个unsigned int,例如12345。我想迭代这个整数的每个数字并将它们放入一个数组中,如下所示:     数组[1,2,3,4,5] 整数中的位数已知并存储在另一个变量size中。

有人可以提出一个简单的算法来迭代整数中的数字并单独提取它们吗?

更新 这就是我的想法:

    function  (const unsigned int value){
        //find length of unsigned int 'value'
        unsigned int i = value;
        unsigned int x = value;
        int j = 0;  //counter
        for(int j = 0; i > 0; j++){
            i = i/10;
        }//end for
        size = j;
        array = new int[size];
        //read in digits of 'value' into array
        for(int i = size-1; i >= 0; i--){   
            array[i] = x % 10;
            x = x / 10;
        }//end for
    }

3 个答案:

答案 0 :(得分:2)

你可以得到数字mod 10的结果,它会给你一个地方的当前数字,然后将数字除以10将数字移动到右边的一个地方,并为每个数字执行此操作。

这确实听起来像是一个家庭作业问题,这就是为什么我的回答很模糊......

答案 1 :(得分:1)

试试这个:

const std::string test_data = "12345";
std::vector<char> digits;
for (unsigned int i = 0; i < test_data.length; ++i)
{
  if (isdigit(test_data[i]))
  {
    digits.push_back(test_data[i]);
  }
}

答案 2 :(得分:0)

好的,发现了问题。这个类的输出运算符被重载,以至于它们不支持整数。一旦我使用David的方法修复了上述代码。