剛開始宣告一字串 並使用getline()來獲取整行輸入 此例中用法為getline(cin, str)
接著創建一input string stream來切割str中的每一單詞
進入while迴圈判斷istringstream是否還有輸入 並且使用for迴圈跑過整個單詞
遇到數字則將此單詞的值*10並加上現在迴圈跑的數字a[i]-'0' 此為ASCII碼計算
若遇到非數字則將此單詞的值清空並跳出此單詞的迴圈
最後將每一個單詞的值加總即為答案
AC解答⬇️
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
string str;
istringstream stream;
while (getline(cin, str)) {
stream.clear();
stream.str(str);
string a;
int sum = 0;
while (stream >> a) {
int num = 0;
for (int i = 0; i < a.length(); i++) {
if (!isdigit(a[i])) {
num = 0;
break;
} else {
num*=10;
num+=(a[i]-'0');
}
}
sum+=num;
}
cout << sum << "\n";
}
return 0;
}