我的代码中有一个 C++ 字符串,如下所示:
"1 2 3 4 5 6 7 8"
我知道字符串是由空格字符分隔的整数组成的。我怎样才能总结它们?
我是一个 C++ 新手,在 Java 中我会简单地做:
String str = "1 2 3 4 5 6 7 8";
int sum = 0;
for (int i = 0; i < str.split(" ").length; i++ {
sum += Integer.parse(str.split(" ")[i];
}
我如何在 C++ 中使用我的字符串对象来做这样的事情?
有人建议我stringstream
,但我仍然无法理解这个对象,我需要完整地阅读字符串,获取其中的每一个数字。
提前致谢!
更新:有些人很好地试图帮助我,但仍然无法正常工作。也许是因为我以前没有澄清的问题的一些怪癖。所以这里是:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
freopen("variable-exercise.in", "r", stdin);
int sum = 0, start = 0;
string line;
while(getline(cin ,line)) {
istringstream iss(line);
while(iss >> start) {
sum += start;
}
cout << start << endl;
sum = start = 0;
}
return 0;
}
啊,输入文件包含以下内容:
1
3 4
8 1 1
7 2 9 3
1 1 1 1 1
0 1 2 5 6 10
因此,对于每一行,程序必须打印字符串行中所有整数的总和。此示例将生成:
1
7
10
21
5
24
谢谢