728x90
#include<iostream>
#include<string>
using namespace std;

int main() {
	cout << "< 덧셈, 뺄셈 프로그램 >" << endl;
	string s;
	cout << "7-23+5-100+25와 같이 덧셈, 뺄셈 문자열을 입력하세요." << endl;
	getline(cin, s, '\n');
	int sum = 0;
	int startIndex = 0;

	while (true) {
		int fIndex = s.find('+', startIndex);

		if (fIndex == -1) {
			string part = s.substr(startIndex);
			if (part == "")	break;
			else if (s.find('-', startIndex) != -1) {
				int f = s.find('-', startIndex);
				int c = f - startIndex;
				string p = s.substr(startIndex, c);
				cout << p << endl;
				sum += stoi(p);
				p = s.substr(f + 1, s.length() - 1);
				cout << '-' << p << endl;
				sum -= stoi(p);
				break;
			}
			cout << part << endl;
			sum += stoi(part);
			break;
		}

		int count = fIndex - startIndex;
		string part = s.substr(startIndex, count);

		if (part.find("-") == -1) {
			cout << part << endl;
			sum += stoi(part);
		}
		else {
			string a;
			char oper = ' ';

			if (part.at(0) == '-')
				oper = '-';

			else
				a += (part.at(0));

			for (int i = 1; i < count; i++) {
				if (part.at(i) == '-') {
					if (oper == '-') {
						cout << '-' << a << endl;
						sum -= stoi(a);
						a.clear();
					}
					else {
						cout << a << endl;
						sum += stoi(a);
						a.clear();
					}
					oper = '-';
				}
				else {
					a += (part.at(i));
				}
			}
			if (oper == '-'&&a.length() != 0) {
				cout << '-' << a << endl;
				sum -= stoi(a);
				oper = ' ';
				a.clear();
			}
		}
		startIndex = fIndex + 1;

	}cout << "숫자들의 합은 " << sum << endl;
}

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기