将整数数组转换为数字
Converting an Integer Array into a Number
认为我有一个这样的整数数组:
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()
访问数字的字符串形式。为了解决溢出问题,使用它可能比尝试将其塞入整数更容易。负值也应该考虑在内,因为这只有在第一个值为负值时才有效(并且有意义)。
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;
}
}
最终编号的结果是:603215
将所有
数字连接为一个字符串,然后将其转换为数字
#include <string>
int b = std::stoi("603215");
此算法将起作用:
- 使用 for 循环将数组的所有整数值转换为字符串。
- 现在将所有字符串值追加到从索引 0 到数组长度的一个字符串。
- 再次将该字符串更改为整数。
迭代数组并将值转换为字符串。然后将它们全部连接起来并转换回整数。
#include <string>
int a[] = {60, 321, 5};
std::string num = "";
for(auto val : a)
num += a;
int b = std::stoi(num);
数组到整数的转换
数字应以相反的方式存储
for(int i=0;i<d;i++)
{
ans += num[i]*pow(10,i);
}
相关文章:
- 将数字转换为字母(例如:123 转换为一二三)
- 将数字转换为单词
- 使用if-else将数字转换为单词
- 将数字转换为填充字符串
- 编译时间文本到数字转换 (atoi)
- 在 c++ 中将数字转换为矢量数组的函数
- 奇怪的数字转换C++
- 用C++将浮点数字转换为本地化字符串
- 如何将ASCII数字转换为从文件中提取的整数
- 检查字符串是否是数字,然后将该数字转换为 int?
- 将 MPFR 数字转换为字符串并返回
- 如何将数字转换为整数向量?
- 如何在C++中将数字转换为链表
- 如何将字符串中的多个数字转换为整数
- 有问题将数字转换为罗马数字
- 这个给定的代码应该将给定的数字转换为尽可能滞后的数字,no.by 用 9.It 替换合适的数字是行不通的
- 将两位数字转换为低内存表示的最快方法
- 视觉 如何将混合的字母和数字转换为仅字母?C++
- 如何在 c++ 中将十六进制数字转换为字符
- 如何将字符串数字转换为各个数字的整数数组