-
요구 사항
✅ 두 문자열을 입력받아서, 둘 모두 숫자(정수)인지 확인하고 정수가 아니라면 사용자에게 다시 입력받아야 합니다.
✅ 앞에서 입력 받은 두 숫자를 이어 붙여서 출력하기. (예> "1111", "2222" = "11112222")
✅ 앞에서 입력 받은 두 숫자를 더해서 출력하기. (예> "1111", "2222" = 3333)
✅ 두 문자열을 입력받아서, 둘 모두 숫자(정수)인지 확인하고 정수가 아니라면 사용자에게 다시 입력받아야 합니다.
for (int i = 0; i < input1.length(); i++) { if (isdigit(input1[i]) == 0) { //숫자가 아니라면 0을 리턴하니까 0 일때, input1_result = 0; } else { input1_result = 2; //숫자가 맞다 } }
사용자에게 처음으로 입력받은 문자열을 input1 에 저장하였고,
이를 원소 하나씩 확인하여 그 값이 정수인지 구분하였습니다. idigit 의 경우 그 값이 숫자가 아니라면 0을 리턴합니다.
미리 선언해놓은 결과 값을 구분하기 위한 '변수 input1_result' 에
isdigit로 문자열을 판단하여 숫자가 아니라면 0 을, 숫자로만 이루어져 있다면 2 를 저장합니다.
(굳이 0과 2가 아니여도 무관합니다.)
if (input1_result == 0 && input2_result == 0) { cout << "\n 숫자가 아닌 값 입니다. 다시 입력해보세요. \n"; } else if (input1_result == 2 && input2_result == 2) { cout << "\n 숫자가 맞습니다.. \n"; break; } else { cout << "\n 2숫자가 아닌 값 입니다. 다시 입력해보세요. \n"; }
두 개의 result 값이 나올 수 있는 경우의 수는 총 4개 이지만( 00, 02, 20, 22 ),
문자열 두 개가 모두 정수의 형태를 가졌을 땐 두 result 가 2 의 값을 가지므로,
두 값이 모두 2인 경우에 반복문을 종료하게 설계 하였습니다.
(지금 확인하니 0 과 0인 경우는 불필요해 보입니다!)
✅ 앞에서 입력 받은 두 숫자를 이어 붙여서 출력하기. (예> "1111", "2222" = "11112222")
cout << " 두 문자열을 합쳤어요. : " << input1 + input2 << endl cout << " 두 문자열을 합쳤어요. : " << input1.append(input2) << endl;
두 문자열을 합치는 것은 단순히 문자열 + 문자열의 형태로 출력해도 되며,
append 함수를 이용해서 뒤로 붙여도 됩니다.
다만 이 경우, input1 에 input2가 옮겨지게 되어서, input1은 input1 과 input2가 합쳐진 값을,
input2는 input2로 저장되어, 덧셈을 할 때 곤란한 상황이 생길 수 있으므로, append를 사용한다면
변수를 따로 지정하는 등의 절차를 거쳐야만 합니다.
위의 결과 창은 input1이 33 이고, input2 는 44 였음에도 append를 하고 나니
input1의 값이 3344 로 변경된 것을 확인할 수 있어요.
✅ 앞에서 입력 받은 두 숫자를 더해서 출력하기. (예> "1111", "2222" = 3333)
int a = stoi(input1); int b = stoi(input2); int sum = 0; sum = a + b; cout << " 두 문자열을 더했어요. : " << sum << endl;
앞에서 입력받은 문자열이 정수로만 이루어졌음을 확인했으므로, stoi를 사용해도 문제가 발생하지 않습니다.
따라서 이를 각각 int 형 변수에 저장하고 sum 변수에 더하는 형식으로 출력하도록 했습니다.
✅ 출력 화면 :
모든 내용을 출력했을 땐 위와 같이 나왔습니다.
🎉해당 글의 내용은 "포스코 x 코딩온 스마트 팩토리 과정 수업" 에서의 수업 자료 및 실습 과제 등에서 일부 발췌되어 작성 되었습니다.
'개발 > C++' 카테고리의 다른 글
[C++] 파일을 읽고 내용을 배열에 저장하여 새로운 파일에 저장하기 (0) 2023.09.08 [C++] stringstream 기본 개념과 간단한 실습, 입력 값의 자료형 판단 (1) 2023.09.07 [C++] string 함수 실습. (size(), length(), find()) (0) 2023.09.06 [C++] list 의 기본 문법과 반복문, list에만 존재하는 함수 실습 (0) 2023.09.05 [C++] Vector 복습. 2차원 배열에서 행과 열의 합을 구하기. (0) 2023.09.05 댓글 (비로그인 댓글 허용하지 않습니다.)