View Code of Problem 3855

#include<iostream>
#include<cmath>
#include<string>
#include<ctype.h>
using namespace std;
int main() 
{
	int t;
	cin >> t;
	getchar();
	while (t--)
	{
		string s;
		getline(cin, s);
		int len = s.size();
		int num1 = 0, num2 = 0;
		int i = 0;
		if (isdigit(s[i]))
		{
			while (isdigit(s[i])&& i < len)
			{
				num1 = num1 * 10 + s[i] - '0';
				i++;
			}
		}
		else if (s[i] == '+')
		{
			i++;
			while (isdigit(s[i])&& i < len)
			{
				num1 = num1 * 10 + s[i] - '0';
				i++;
			}
		}
		else if (s[i] == '-')
		{
			i++;
			while (isdigit(s[i])&& i < len)
			{
				num1 = num1 * 10 + s[i] - '0';
				i++;
			}
			num1 *= -1;
		}
		while (!isdigit(s[i]))
		{
			i++;
		}
		//i--;
		if (s[i - 1] == '+')
		{
			while (isdigit(s[i]) && i < len)
			{
				num2 = num2 * 10 + s[i] - '0';
				i++;
			}
		}
		else if (s[i-1] == '-')
		{
			while (isdigit(s[i]) && i < len)
			{
				num2 = num2 * 10 + s[i] - '0';
				i++;
			}
			num2 *= -1;
		}
		int sum = num1 + num2;
		cout << sum << endl;
	}
}

Double click to view unformatted code.


Back to problem 3855