https://www.acmicpc.net/problem/11718
문제 설명
풀이 과정
- 나의 풀이
① 문제 바라보기
문제 그대로 '입력 받은 대로 출력'하면 된다. C언어였으면 eof가 입력되면 while문을 멈추는 방식으로 작성했을텐데.. C++은 첨이라 getline함수를 처음 사용해보았다.
② 아이디어 열기
string 라이브러리 속에 있는 getline 함수를 사용하여 문자열의 입력이 주어지면 string 객체에 저장한 뒤 출력하기로 하였다.
+) istream 속 getline함수는 C언어 방식의 문자열을 처리하는 함수이다.
● istream& getline(istream& is, string& str);
● istream& getline(istream& is, string& str, char delim);
▷ param
- is : 입력스트림 오브젝트 ex) cin
- str : 입력 받은 문자열을 저장할 string 객체
- delim : 제한자로 이 문자에 도달시 추출이 중단된다. 이떄 이 문자는 string 객체에 기록되지 않는다.
▷ description
- str이라는 string 객체에 is라는 입력스트림을 통해 문자열을 입력 받는다. (단, delim을 통해 입력받는 문자열에 제한을 둘 수 있음)
▷ return
- eof가 입력되면 0이 반환된다.
이를 코드로 구현하면 다음과 같다.
#include <iostream>
#include <string>
int main(void) {
std::string str;
while(getline(std::cin,str)) {
std::cout << str << std::endl;
}
return 0;
}
후기
개인적으로 다른 라이브러리라도 같은 이름의 다른 용도를 가진 함수가 있을 수도 있으니 std::string과 같이 namespace를 전부 다 쓰는 것을 선호하게 되었다..!!
getline 함수 잘 써먹을듯.
'Algorithm > string' 카테고리의 다른 글
[백준] 11721 열 개씩 끊어 출력하기 (C++) (0) | 2022.01.18 |
---|---|
[백준] 11720 숫자의 합 (C++) (0) | 2022.01.18 |
[백준] 11656 접미사 배열 (Python 파이썬) (0) | 2021.08.12 |
[백준] 11652 카드 (파이썬 Python) (0) | 2021.08.01 |
[백준] 1946 신입사원 (파이썬 Python) (0) | 2021.07.29 |