[백준/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언어에서 주로 사용하는 함수이다. 줄바꿈도 입력받을 수 있다는 특징이 있다.

두번째 방법은 줄바꿈을 입력받지 않고, 앞뒤로 존재하는 공백문자를 무시하고 입력값을 저장한다.