将数字转换为字符串
Converting a number into a string
所以我有一个关于将数字的所有数字相加的任务。例如,如果数字为 2367,则添加 2 + 3 + 6 + 7。
但是,问题是该数字很大(2^325),约为106位。我尝试使用双精度或浮点数,但问题是该数字仅在精确 10 位左右的 0 位之后显示为 0。
我遇到的另一个问题是我不知道我是否应该将数字转换为字符串或数组,然后将字符串或数组的所有位置相加(如数组[1] + 数组[2] + ...数组[n])。
如果我是对的,如何将数字转换为数组/字符串?
谢谢!我只学了 C,所以我什至不确定如何在C++中更改它
初学者程序员在这里:(
再次感谢!
最简单的解决方案是将您的号码保留为std::string
。 可以像数组一样访问std::string
。
(如"3")转换为数字,请从中减去字符"0"。
例:
unsigned int value_of_3 = '3' - '0';
要将所有数字相加,请逐个字符遍历字符串。 对于每个数字字符,减去"0",然后将结果添加到 sum 变量中。
编辑 1:
说明性图纸。给定数字 2367 作为字符串 "2367",你有数组:
+-----+-----+-----+-----+
| '2' | '3' | '6' | '7' |
+-----+-----+-----+-----+
让字符串命名为 digit_string
。digit_string[1]
的值为"3",如上图所示。
要获取第二个插槽的数值,请执行以下操作:
unsigned numeric_value = digit_string[1] - '0';
这会导致numeric_value == 3;
.
这是对标题问题的回答,而不是描述中的后续问题。将数字转换为字符串的一种简单方法是将值输出到流并检索流的字符串内容。
int streetNumber = 2500;
string streetNumberStr;
ostringstream os;
os << streetNumber;
streetNumberStr = os.str();
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组