-
명품 C++ 2장 15번C++ 2018. 10. 28. 02:59
15. 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 나머지(%)의 정수 5칙 연산을 할 수 잇는 프로그램을 작성하라. 식은 다음과 같은 형식으로 입력된다. 정수와 연산자는 하나의 빈칸으로 분리된다.
소스코드
#include <iostream>#include <cstring>using namespace std;int add(int a, int b);int sub(int a, int b);int mul(int a, int b);int divi(int a, int b);int rem(int a, int b);int main() {char text[100];char *ptr = NULL;int left, right;for (;;) {cout << "? ";cin.getline(text, 100);left = atoi(strtok(text, " "));ptr = strtok(NULL, " ");right = atoi(strtok(NULL, " "));if (*ptr == '+') {cout << left << ' ' << ptr << ' ' << right << " = " << add(left, right) << endl;}else if (*ptr == '-') {cout << left << ' ' << ptr << ' ' << right << " = " << sub(left, right) << endl;}else if (*ptr == '*') {cout << left << ' ' << ptr << ' ' << right << " = " << mul(left, right) << endl;}else if (*ptr == '/') {cout << left << ' ' << ptr << ' ' << right << " = " << divi(left, right) << endl;}else if (*ptr == '%') {cout << left << ' ' << ptr << ' ' << right << " = " << rem(left, right) << endl;}elsecout << "입력이상" << endl;}}int add(int a, int b) {return a + b;}int sub(int a, int b) {return a - b;}int mul(int a, int b) {return a * b;}int divi(int a, int b) {return a / b;}int rem(int a, int b) {return a % b;}실행결과
strtok(text," "); 는 공백전까지 문자열을 잘라 주는 함수입니다.
strtok(NULL," "); 는 다음 문자열을 자를 수 있게 해줍니다.
atoi는 문자열을 숫자로 바꿔주는 함수입니다.
연산자를 구분하여 함수를 호출 하였습니다.
strtok 함수에 대한 정보 출처 : https://dojang.io/mod/page/view.php?id=376
'C++' 카테고리의 다른 글
명품 C++ 2장 Open Challenge (0) 2018.10.28 명품 C++ 2장 16번 (0) 2018.10.28 명품 C++ 2장 14번 (0) 2018.10.28 명품 C++ 2장 13번 (0) 2018.10.28 명품 C++ 2장 12번 (0) 2018.10.28