我有我的代碼C++字符串,它是像所有的整數:總和在字符串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
感謝
顯式構建'std :: string'的原因是什麼? – 2013-06-27 18:33:02
@ H2CO3:沒有特別的理由,我認爲在某些時候,OP可能最終會產生一個「字符串」對象(可能由某種其他函數構造),並希望從中得到數字。 –
好的,我明白了,謝謝。 – 2013-06-27 18:34:41