gpt4 book ai didi

c++ - 字符串中的数字总和(使用字符串对象)C++

转载 作者:行者123 更新时间:2023-11-28 06:31:41 25 4
gpt4 key购买 nike

我目前正在尝试获取用户输入的数字字符串,将它们分别转换为 int,然后计算它们的总和。

例如:如果用户输入“1234”,程序应该执行 1 + 2 + 3 + 4 并显示“10”。我尝试了很多实验,但似乎停滞不前。

我希望使用 C 字符串/字符串对象创建此代码,并在可能的情况下使用“istringstream()”(虽然没有必要...[特别是如果有更简单的方法...])

这是我目前所拥有的:

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
string digits;
int total = 0, num;

cout << "Enter a string of digits, and something magical will happen to them..." << endl;
cin >> digits;

for (int i = 0; i < digits.length(); i++)
{
cout << digits.at(i) << endl;
istringstream(digits.at(i)) >> num;
cout << num << endl; // Displays what came out of function
total += num;
}

cout << "Total: " << total << endl;

// Digitize me cap'm
// Add string of digits together
// Display Sum
// Display high/low int in string
}

我做错了什么?为什么我在 for 循环中不断得到超高数字?我应该使用更有效的功能吗?感谢您的帮助:)

最佳答案

应该是

for (int i = 0; i < digits.length(); i++)
{
cout << digits.at(i) << endl;
num = digits.at(i) - '0';
assert(0 <= num && num <= 9);
cout << num << endl; // Displays what came out of function
total += num;
}

要转换单个数字,您不需要像 stringstream 这样复杂的东西。您也可以使用(不推荐)istringstream(digits.substr(i, 1))

关于c++ - 字符串中的数字总和(使用字符串对象)C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27419817/

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