用的string跟stringstream直接转换类型求和了。。。
#include<bits/stdc++.h>
using namespace std;
const long long maxn = 100+5;
string z1, z2, ans;
int main()
{
while (cin >> z1 >> z2) {
string k1[2], k2[2];
for (int i = 0; i < z1.find('+'); i++) {
if (i+1 == z1.find('+')) {
k1[0] = z1.substr(0, i+1);
k1[1] = z1.substr(i+2,z1.length()-z1.find('+')-2);
}
}
for (int i = 0; i < z2.find('+'); i++) {
if (i+1 == z2.find('+')) {
k2[0] = z2.substr(0, i+1);
k2[1] = z2.substr(i+2,z2.length()-z2.find('+')-2);
}
}
long long a1[2], a2[2];
for (int i = 0; i < 2; i++) {
stringstream ss;
ss << k1[i];
ss >> a1[i];
}
for (int i = 0; i < 2; i++) {
stringstream ss;
ss << k2[i];
ss >> a2[i];
}
a1[0] += a2[0];
a1[1] += a2[1];
printf("%ld+%ldi\n", a1[0], a1[1]);
}
return 0;
}