想想我有一个像这样的整数数组:a[0]=60; a[1]=321; a[2]=5;
现在我想将整个数组转换为整数,例如int b
在运行代码后变成603215。怎么做?将整数数组转换为数字
回答
使用std::stringstream
:
#include <iostream>
#include <sstream>
int main() {
std::stringstream ss;
int arr[] = {60, 321, 5};
for (unsigned i = 0; i < sizeof arr/sizeof arr [0]; ++i)
ss << arr [i];
int result;
ss >> result;
std::cout << result; //603215
}
注意,在C++ 11婉转丑陋的循环可以用这个来代替:
for (int i : arr)
ss << i;
而且,看如何有一个很好的可能性溢出,数字的字符串形式可以通过ss.str()
访问。为了解决溢出问题,可能比尝试将它塞进一个整数更容易。也应该考虑负值,因为如果第一个值为负数,这只会起作用(并且是有意义的)。
非常感谢你,尼斯答案:)) – Nofuzy
非常感谢它的工作....... –
的毗连所有的数字作为一个字符串,然后将其转换成数字
#include <string>
int b = std::stoi("603215");
我知道这个问题不是太具体,但我会想象数组元素可以是任意的它不会溢出整数)。对一个字符串值进行硬编码不会解决这个问题。不过,该函数是一个很好的替代开始(假设你有C++ 11)。 – chris
该算法将工作:
- 使用循环转换阵列的所有整数值转换为字符串。
- 现在将所有字符串值追加到从索引0到数组长度的一个字符串。
- 再次将该字符串更改为整数。
我在阅读时让你的算法更容易遵循。 FFR,编辑空间顶部有一个编号列表按钮。 – chris
int a[] = {60, 321, 5};
int finalNumber = 0;
for (int i = 0; i < a.length; i++) {
int num = a[i];
if (num != 0) {
while (num > 0) {
finalNumber *= 10;
num /= 10;
}
finalNumber += a[i];
} else {
finalNumber *= 10;
}
}
finalNumber具有结果:
迭代的阵列和将这些值转换成字符串。然后连接它们并转换回整数。
#include <string>
int a[] = {60, 321, 5};
std::string num = "";
for(auto val : a)
num += a;
int b = std::stoi(num);
- 1. 将整数转换为数组数字
- 2. 将字符数组转换为整数
- 3. 将字符数组转换为整数
- 4. 将字符数组转换为整数
- 5. 将字符数组转换为整数
- 6. 将整数转换为数组数组
- 7. 将“整数字符串”转换为整数数组
- 8. C++将整数字符串转换为整数数组?
- 9. 如何将字符串数组转换为整数数组?
- 10. 将字符串数组转换为整数数组
- 11. 将字符串数组转换为整数数组
- 12. 将字符串数组转换为整数数组
- 13. numpy将分类字符串数组转换为整数数组
- 14. Java - 将音频的字节数组转换为整数数组
- 15. MATLAB - 将数字字符数组转换为数字整数数组/矩阵?
- 16. Javascript - 将整数转换为数组
- 17. 将整数转换为数组
- 18. 将numpy数组值转换为整数
- 19. 将EnumSet转换为整数数组
- 20. 转换字符数组为整数
- 21. 转换字符串数组为整数
- 22. 转换字节数组为整数
- 23. Java:我想将整数数组转换为数学数字
- 24. 将包含整数数组的字符串转换为整数数组in java
- 25. 将数字转换为纯整数
- 26. 将TextBox数字转换为整数
- 27. 将罗马数字转换为整数
- 28. 将InputStream.read()转换为数字(非整数)
- 29. 转:将数组中的字符串转换为整数
- 30. Android:将字节数组转换为整型数组
我不得不说,我从来没有想过这样做,或看到任何人试图做到这一点。独创性的荣誉,或选择一个隐藏在我身边的问题。 – chris
这是类似的,但比[这个问题]更简单(http://stackoverflow.com/questions/11187898/how-to-concatinate-3-ints-into-unsigned-long-long/)。我的解决方案适用于这个问题,但由于您不关心格式化,所以'stringstream'解决方案似乎更简单。 – juanchopanza