C 언어

[C언어] 문자열 입력 하기(scanf_s, scanf, gets)

Let it out 2024. 2. 10. 22:56

문자열 입력, 출력 함수들

문자열 입력 함수는 대표적으로 세 가지가 있다.
 
1. scanf_s
 
2. scanf
 
3. gets
 
안전성 문제 때문에 scanf_s 함수 사용을 마이크로 소프트에서 적극 권장하고 있다.
 
따라서 나머지 함수들은 사용을 자제하는게 좋다.
 
 

 

scanf_s 함수 사용하여 문자열 입력

1. char를 배열로 선언해주고 %c 대신 %s로 입력 받으면 된다.
2. 주의 할 점은 sizeof(input)처럼 크기를 지정해 줘야 한다. 크기를 지정하지 않으면 에러 발생.
#include <stdio.h>

int main()
{
    char input[16];

    printf("문자 입력 : ");
    scanf_s("%s", input, sizeof(input));

    printf("%s\n", input);

    return 0;
}
 
 

결과



 
 

아래부터는 사용을 권장하지 않는 함수다.

 

gets 함수 사용하여 문자열 입력

#include <stdio.h>

int main()
{
    char input[16];

    printf("문자 입력 : ");
    gets(input);

    printf("%s\n", input);

    return 0;
}
 

결과


 


 

scanf 함수 사용하여 문자열 입력

#include <stdio.h>

int main()
{
    char input[16];

    printf("문자 입력 : ");
    scanf("%s", input);

    printf("%s\n", input);

    return 0;
}
 
 

 

결과

scanf 함수 사용 시 에러가 발생한다.

 


 
 
 
 
사실 scanf 함수를 사용 할 수 있는 방법이 있다.
scanf 함수를 꼭 사용해야만 한다면 아래 링크 참고
 

 

반응형