> num1 >> num2; l = num1.size(); -6ren">
gpt4 book ai didi

c++ - 为什么字符串变量 "sum"没有存储任何数据并且程序没有给出任何输出

转载 作者:行者123 更新时间:2023-11-30 01:41:07 25 4
gpt4 key购买 nike

    int l, s, j, k, carry=0;
string num1, num2, sum;

cin >> num1 >> num2;
l = num1.size();
s = num2.size();

for(j=l-1; j>=0; j--)
{
k = (num1[j]-'0') + (num2[j]-'0') + carry;
cout << k<<endl;
carry = k/10;
k%=10;
sum[j]= '0' + k;
}

cout << sum << endl;

我正在尝试使用字符串将两个数字(都具有相同的数字长度)相加。它没有给出任何输出。

最佳答案

在变量声明之后,您的 sum 变量是一个空字符串。您正在尝试访问它的第 j 个元素 - 这是数组索引溢出并且是未定义的行为。

解决方案是用某些东西初始化字符串或使用连接而不是更改字符,如下所示:

sum += (char)('0' + k);

UP:这种修复会将结果以相反的顺序写入字符串,因此,要获得正确的字符串,还应该添加

std::reverse(sum.begin(), sum.end());

在循环之后。

此外,您的代码假定 sum 长度与两个参数的长度完全相同,这可能是错误的。

关于c++ - 为什么字符串变量 "sum"没有存储任何数据并且程序没有给出任何输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41892750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com