어려운 문제는 아니지만,

해당 언어를 처음 배우는 사람은 풀 수 없는 문제이다😂 

모르는게 잘못된 것이 절대 아니고, 모를 수 밖에 없기 때문에 이제 공부해서 알아가면 된다.

 

문제

입력 받은 대로 출력하는 프로그램을 작성하시오.

입력

입력이 주어진다. 입력은 최대 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 으로 비교하는 방법도 있을 것이다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기