实现俩个string类型求和
时间: 2023-11-02 21:02:41 浏览: 82
求两个多项式的和
4星 · 用户满意度95%
要实现两个 string 类型的求和,可以将它们转换为数字类型,相加后再转换回 string 类型。下面是一个示例代码:
```c++
#include <iostream>
#include <string>
using namespace std;
string addStrings(string num1, string num2) {
int carry = 0;
string result;
int i = num1.size() - 1;
int j = num2.size() - 1;
while (i >= 0 || j >= 0 || carry) {
int n1 = i >= 0 ? num1[i] - '0' : 0;
int n2 = j >= 0 ? num2[j] - '0' : 0;
int sum = n1 + n2 + carry;
result = to_string(sum % 10) + result;
carry = sum / 10;
i--;
j--;
}
return result;
}
int main() {
string num1 = "123";
string num2 = "456";
string sum = addStrings(num1, num2);
cout << sum << endl; // 输出579
return 0;
}
```
这里的 `addStrings` 函数将两个 string 类型的数字相加,并返回一个 string 类型的结果。它使用了一个循环,逐位相加,并将结果存储在一个新的 string 中。在循环中,我们使用了三个变量:`i` 和 `j` 分别表示 `num1` 和 `num2` 字符串的下标,`carry` 表示进位。我们首先将 `num1` 和 `num2` 的当前位转换为数字类型,然后将它们相加,再加上进位。将相加的结果对 10 取模,将余数存储在结果 string 的当前位,将商存储在进位变量中。最后,我们将 `i` 和 `j` 向前移动一位,继续下一轮循环。当 `i` 和 `j` 都小于 0 时,循环结束。最后,如果进位不为 0,我们将其添加到结果的最高位。
阅读全文