✅ 목표 (Goal)

fget 함수를 사용해보자.

✅ fget 함수에 대해서

fgets()는 문자열을 입력 받을 때 사용되는 함수

버퍼 오버플로우를 방지하기 위해 최대 입력 크기를 지정할 수 있다는 장점이 있다.

fgets()는 공백도 포함해서 한 줄을 읽어들이므로, 입력에 공백이 포함될 때 유용하다.

scanf도 스캔셋 형식 지정자를 이용해서 공백을 읽어들일수 있지만 영 불편하다.

✅ fget 예제

#include <stdio.h>
#include <string.h>
int main() {
    char str[100];  // 최대 99개의 문자 입력 (마지막 '\\0' 포함)

    printf("Enter a string: ");

    // 최대 99자까지 입력 받기
    fgets(str, sizeof(str), stdin);
    
    str[strcspn(str, "\\n")] = '\\0';
    //strcspn(str, "\\n")는 문자열에서 첫 번째 \\n의 위치를 찾습니다.그 위치에 \\0을 넣어 \\n을 제거하는 방식입니다
    // 입력 받은 문자열 출력
    printf("You entered: %s\\n", str);

    return 0;
}

fgets(str, sizeof(str), stdin); 는 stdin(표준 입력)에서 최대 sizeof(str) - 1개의 문자를 읽는다.

마지막에는 자동으로 \0이 추가된다.

공백을 포함한 문자열을 읽을 수 있다.

입력을 다 읽은 후, \n이 문자열에 포함될 수 있는데, 필요시 이를 제거하면 된다.

✅ strcspn 함수