본문 바로가기
C C++/C C++ 알고리즘 문제 기타

C언어 코드업 1022번 1022 : [기초-입출력] 문장 1개 입력받아 그대로 출력하기(설명)

by Go! Jake 2022. 2. 8.

문제

공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.

 

문제풀이

#include <stdio.h>
#pragma warning(disable:4996)
int main()
{
	char x[2001];
	fgets(x,sizeof(x),stdin);
	printf("%s", x);
}

- 문제 입력에 최대 2000글자가 입력된다고 하므로 x[2001]로 문자열을 지정한다.

- scanf 함수를 쓰지 않고 fgets(file-get-string) 함수를 사용하였다.

둘의 차이를 간단히 비교하면, scanf는 int, float, char, double 등 여러 종류의 데이터형을 입력받을 수 있으나 문자열에서는 약한데, 이유는 공백이 생기면 더 이상 입력을 받지 않기 때문이다. 반면에 fgets는 int, float, char, double을 받을 수 있음과 동시에 공백이 있는 문자열도 입력받을 수 있다. 이 때 크기를 지정 해 줘야 한다.

- fgets (변수 이름, 사이즈, stdin)으로 입력한다. 이 때 stdin은 standard input으로 표준 입력이라고 한다. 내용을 좀 더 찾아봐서 이해는 되는 데, 기본적으로 표준 입력이라고 지정 해 주는 것과 같다고 이해하였다.

 

댓글