✅ 목표 (Goal)

scanf 함수의 문제점에 대해 알아보자.

✅ scanf 함수는 공백 입력이 안된다.

scanf는 융통성이 별로 없고, 사용이 그리 편치 않다.

가급적 fgets를 쓰는게 낫다.

✅ 스캔셋이란?

스캔셋(Scanset)은 기본적으로 %s와 유사하다.

그러나, 모든 문자열을 입력받는 것이 아니라 별도로 기술한 범위에 속하는 것들만 골라서 입력을 받는다는 점이 다르다.

그리고 그 범위에 속하지 않는 문자가 등장하는 지점에서 입력을 종료한다.

scanf의 %s는 입력 구분을 의미하는 공백 문자를 처리할 수 없었지만 스캔셋을 이용하면 scanf()함수가 gets()함수처럼 작동하게 할 수도 있다.

[^ "문자"]

해당 문자가 나오기 전까지 입력을 받겠다.

#define _CRT_SECURE_NO_WARNINGS

#include <stdio.h>

#define LEN 128

int main() {
    char str[LEN] = {0, };
    scanf("%[^\\n]s", str);
    printf("%s", str);
    return 0;
}