어려운 문제는 아니지만,
해당 언어를 처음 배우는 사람은 풀 수 없는 문제이다😂
모르는게 잘못된 것이 절대 아니고, 모를 수 밖에 없기 때문에 이제 공부해서 알아가면 된다.
문제
입력 받은 대로 출력하는 프로그램을 작성하시오.
입력
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.
출력
입력받은 그대로 출력한다.
백준 문제 링크 : www.acmicpc.net/problem/11718
11718번: 그대로 출력하기
입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시
www.acmicpc.net
핵심 포인트
1. getline() 함수를 고려해보자.
코드
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
string str;
int main(int argc, char* argv[]) {
ios_base :: sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
getline(cin, str); // 한 줄을 받아온다.
while(str != "\0"){ // 받은 문장이 \0 (=NULL)이 아닐경우 아래 내용을 반복한다.
cout << str << '\n'; // 문장을 출력한다.
getline(cin, str); // 다시 문장을 입력받는다.
}
return 0;
}
getline() 함수는 한 문장을 받아오는 함수이다. (헤더파일은 <string>이다.)
string형 변수를 하나 선언하고,
그 변수에 계속 받으면서 받은 내용을 출력하면 된다.
문장이 언제 끝나는지 알 방법에 대해 잠깐 고민했었다.
그런데 문자열의 끝에는 자동으로 \0(NULL 문자)이 저장된다.
그렇기 때문에 빈 문자열이라면 그냥 "\0"이 될 것이다.
그래서 str != "\0" 으로 비교하면 된다.
다른 방법으로는 str.length() != 0 으로 비교하는 방법도 있을 것이다.