[백준/C++]#11718 - 공백이 존재하는 문자열 출력
2021. 1. 11. 18:47ㆍ필요/코딩테스트(백준)
풀이
#include <iostream>
#include <string>
using namespace std;
int main() {
string str;
while (true) {
getline(cin,str);
if (str == "")
break;
cout << str << endl;
}
return 0;
}
C++ 개념
C++에서는 string 라이브러리로 getline(cin,str) 함수를 사용할 수 있다.
cin은 공백 입력시 문자열의 입력이 종료되나, 이 함수는 공백 또한 값으로 입력 받는다.
즉 한줄을 입력받는게 가능하다.
위 풀이에서는 일단 추가로 string 라이브러리를 include했다.
if (str == "")를 통해 입력이 들어오지 않는 ""인 상태라면 break를 사용해 반복문을 벗어난다.
그 이외의 경우 (입력이 들어오는 경우)에는 입력값을 그대로 출력한다.
공백문자를 입력받는 것은 C언어로도 가능한데, 다음과 같은 두가지 방법이 있다.
fgets(str, 100, stdin);
scanf("%[^\n]\n", str);
fgets는 c언어에서 주로 사용하는 함수이다. 줄바꿈도 입력받을 수 있다는 특징이 있다.
두번째 방법은 줄바꿈을 입력받지 않고, 앞뒤로 존재하는 공백문자를 무시하고 입력값을 저장한다.
'필요 > 코딩테스트(백준)' 카테고리의 다른 글
[백준/C++]#10799 - 레이저로 쇠막대기 자르는 문제 (0) | 2021.01.12 |
---|---|
[백준/C++]#9012 - 올바른 괄호 문제 (0) | 2021.01.12 |
[백준/C++]#10951 - A + B (입력개수 x) (0) | 2021.01.11 |
[백준강의] 알고리즘과 입출력 개념 (0) | 2021.01.11 |
코드업 기초 100제 (2) | 2021.01.08 |